码迷,mamicode.com
首页 > 编程语言 > 详细

Javascript创建空对象和空数组的几个方法和差别

时间:2016-10-20 00:29:07      阅读:146      评论:0      收藏:0      [点我收藏+]

标签:

以下是三种创建空对象的方法:

var emptyObj1 = {};
var emptyObj2 = new Object();
var emptyObj2 = Object.create(Object.prototype);

他们对Javascript来说是一样的,新创建的三个对象会继承object所有的属性和方法,所以emptyObj1.toString等于Object.prototype.toString。但是要注意,{}.toString是会报错的!

类似的还有空数组问题:

var emptyArr1 = [];
var emptyArr2 = new Array();

以上两行没有差别

var arr1 = [‘foo‘,‘bar‘];
var arr2 = new Array(‘foo‘,‘bar‘);

以上两行也没有差别

var arr1 = [3];  // arr1.length == 1, arr1[0] == 3
var arr2 = new Array(3); // arr2.length == 3, arr2[0] == undefined

以上两行是不同

var arr1 = [];
arr1[0] = ‘first element‘;
console.log(arr1); // ["first element"]

var arr2 = new Array();
arr2[0] = ‘first element‘;
console.log(arr2); // ["first element"]

var arr3 = Object.create(Array.prototype);
arr3[0] = ‘first element‘
console.log(arr3); // Array {0: "first element"}

以上代码可以看出用Object.create创建的数组返回的是Object, 如果把arr3[0] = ‘first element‘换成arr3.push(‘first element‘),那输出的结果就和上面两个一样了。

 

参考链接:

http://stackoverflow.com/questions/251402/create-an-empty-object-in-javascript-with-or-new-object

http://stackoverflow.com/questions/931872/what-s-the-difference-between-array-and-while-declaring-a-javascript-ar

Javascript创建空对象和空数组的几个方法和差别

标签:

原文地址:http://www.cnblogs.com/liangzi4000/p/5979102.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!