首页 > 代码库 > Javascript创建空对象和空数组的几个方法和差别
Javascript创建空对象和空数组的几个方法和差别
以下是三种创建空对象的方法:
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创建空对象和空数组的几个方法和差别
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。