在javascript中使用字面量创建原型对向,和构造函数的区别
答案:2 悬赏:20
解决时间 2021-02-28 04:43
- 提问者网友:萌萌小主
- 2021-02-27 13:16
在javascript中使用字面量创建原型对向,和构造函数的区别
最佳答案
- 二级知识专家网友:万千宠爱
- 2021-02-27 13:21
创建对象的两种方法:
使用字面量方法创建对象:var student = {name: "张三"};
使用内置构造函数创建对象:var student = new Object(); student.name = "张三"。
应该尽量使用字面量发创建对象,其显著优点在于它只需要输入更少的字符,除此之外,还有几点原因:
1. 选择字面量法创建对象强调该对象仅是一个可变的hash映射,而不是从对象中提取的属性或方法。
2. 对使用Object构造函数相对,使用字面量在于它并没有作用域解析。因为可能以同样的名字创建一个局部函数,解释器需要从调用Object(0的位置开始一直向上查询作用域链,知道发现全局Object构造函数。
3. 构造函数Object可以仅接受一个参数,并且还依赖传递的值,该OBject()可能会委派另一个内置函数来创建对象,并且返回了一个并非期望的不同对象。如将数字、字符串、布尔值当做参数传递给Object构造函数,其结果是获得了以不同构造函数所创建的对象,例如:var oschina = new Object(1);ochina.constructor为Number;传递的值是动态的,直到运行时才确定其类型,这种行为会导致意想不到的结果。
应该尽量使用字面量发创建对象,其显著优点在于它只需要输入更少的字符,除此之外,还有几点原因:
1. 选择字面量法创建对象强调该对象仅是一个可变的hash映射,而不是从对象中提取的属性或方法。
2. 对使用Object构造函数相对,使用字面量在于它并没有作用域解析。因为可能以同样的名字创建一个局部函数,解释器需要从调用Object(0的位置开始一直向上查询作用域链,知道发现全局Object构造函数。
3. 构造函数Object可以仅接受一个参数,并且还依赖传递的值,该OBject()可能会委派另一个内置函数来创建对象,并且返回了一个并非期望的不同对象。如将数字、字符串、布尔值当做参数传递给Object构造函数,其结果是获得了以不同构造函数所创建的对象,例如:var oschina = new Object(1);ochina.constructor为Number;传递的值是动态的,直到运行时才确定其类型,这种行为会导致意想不到的结果。
全部回答
- 1楼网友:闲懒诗人
- 2021-02-27 14:10
你好!
原型对象和构造函数没有任何关系。
仅代表个人观点,不喜勿喷,谢谢。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯