首页 新闻 会员 周边 捐助

JavaScript中定义对象两种方式的区别?

0
[已解决问题] 解决于 2015-05-02 15:10
请教各位大神,以下两种定义对象的方式有什么区别呢?
var obj = new Object();
var obj = {};

还有用new关键字的时候,Js引擎到底做了那些事情呢?请大家帮忙解决一下?

谢谢!

nash_qiu的主页 nash_qiu | 菜鸟二级 | 园豆:204
提问于:2015-02-04 16:17
< >
分享
最佳答案
0

这是javascript对象的两种声明方式,在js引擎上处理本质是一样的,但是某些浏览器又会有一些区别,比如在解析时是否都调用Object的构造函数。

第一种是使用new操作符,第二种是使用对象字面量声明对象。

对象字面量是一种简写方式,在开发时比较建议有这种方式,因为代码量少。

下面给些相似的例子:

var arr0=new Array(); // 数组声明
var arr1=[]; // 字面量声明方式

// 同样,上面的对象声明方式改为下面也是一样的意思
var obj = {}
obj.a = 5;

var obj1 = new Object();
obj1 = 5;

// 上面两种对象声明是等价的

不知对你是否有帮助~~

奖励园豆:5
进击的小矮人 | 菜鸟二级 |园豆:316 | 2015-02-06 10:29

恩恩,大概能理解,也就是稀里糊涂的感觉。不是特别明白,就好像Object.prototype到底是个什么对象?既不是Object的实例,又不是Function的实例,都是囫囵吞枣的理解。感觉特别迷糊~~~

nash_qiu | 园豆:204 (菜鸟二级) | 2015-02-06 10:36

@nash_qiu: new可以用来实例化一个类的对象,{}只能用来创建一个空对象。prototype就是Object的一个属性,只不过是一个对象类型的属性。我们把Object作为一个类的时候,用new实例化这个Object,在实例化出来的对象中会自动生成一个叫“__proto__”的属性,指向Object的prototype。

Hx2JS | 园豆:200 (初学一级) | 2015-04-07 14:43
其他回答(1)
0
问天何必 | 园豆:3311 (老鸟四级) | 2015-02-04 17:09

能直接告诉我,用new Object() 和 大括号{} 定义一个对象,有什么区别么?非常感谢你。

支持(0) 反对(0) nash_qiu | 园豆:204 (菜鸟二级) | 2015-02-05 09:35
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册