请教各位大神,以下两种定义对象的方式有什么区别呢?
var obj = new Object(); var obj = {};
还有用new关键字的时候,Js引擎到底做了那些事情呢?请大家帮忙解决一下?
谢谢!
这是javascript对象的两种声明方式,在js引擎上处理本质是一样的,但是某些浏览器又会有一些区别,比如在解析时是否都调用Object的构造函数。
第一种是使用new操作符,第二种是使用对象字面量声明对象。
对象字面量是一种简写方式,在开发时比较建议有这种方式,因为代码量少。
下面给些相似的例子:
var arr0=new Array(); // 数组声明 var arr1=[]; // 字面量声明方式 // 同样,上面的对象声明方式改为下面也是一样的意思 var obj = {} obj.a = 5; var obj1 = new Object(); obj1 = 5; // 上面两种对象声明是等价的
不知对你是否有帮助~~
恩恩,大概能理解,也就是稀里糊涂的感觉。不是特别明白,就好像Object.prototype到底是个什么对象?既不是Object的实例,又不是Function的实例,都是囫囵吞枣的理解。感觉特别迷糊~~~
@nash_qiu: new可以用来实例化一个类的对象,{}只能用来创建一个空对象。prototype就是Object的一个属性,只不过是一个对象类型的属性。我们把Object作为一个类的时候,用new实例化这个Object,在实例化出来的对象中会自动生成一个叫“__proto__”的属性,指向Object的prototype。