javascript中对象字面量方式创建对象,不会调用Object构造函数吗_百度知 ...
发布网友
发布时间:2022-05-06 09:48
我来回答
共1个回答
热心网友
时间:2022-04-22 14:22
创建对象的两种方法:
使用字面量方法创建对象:var student = {name: "张三"};
使用内置构造函数创建对象:var student = new Object(); student.name = "张三"。
应该尽量使用字面量发创建对象,其显著优点在于它只需要输入更少的字符,除此之外,还有几点原因:
选择字面量法创建对象强调该对象仅是一个可变的hash映射,而不是从对象中提取的属性或方法。
对使用Object构造函数相对,使用字面量在于它并没有作用域解析。因为可能以同样的名字创建一个局部函数,解释器需要从调用Object(0的位置开始一直向上查询作用域链,知道发现全局Object构造函数。
构造函数Object可以仅接受一个参数,并且还依赖传递的值,该OBject()可能会委派另一个内置函数来创建对象,并且返回了一个并非期望的不同对象。如将数字、字符串、布尔值当做参数传递给Object构造函数,其结果是获得了以不同构造函数所创建的对象,例如:var oschina = new Object(1);ochina.constructor为Number;传递的值是动态的,直到运行时才确定其类型,这种行为会导致意想不到的结果。