【发布时间】:2011-05-12 03:38:36
【问题描述】:
来自页面https://developer.mozilla.org/en/Core_JavaScript_1.5_Guide/Details_of_the_Object_Model:
当 JavaScript 看到 new 操作符时, 它创建一个新的通用对象和 将此新对象作为 WorkerBee 的 this 关键字 构造函数。构造函数 函数显式设置 该项目的财产,并隐含 设置内部的值 proto 属性为 WorkerBee.prototype 的值。 (那个属性 名称有两个下划线字符 前面和最后两个。) proto 属性确定用于返回的原型链 属性值。一旦这些属性 已设置,JavaScript 返回新的 对象和赋值语句 将变量标记设置为该对象。
所以基本上如果我们有这个功能:
function Bee(first_name, second_name){
this.FirstName=name;
this.SecondName=name;
}
我想知道像 var bee1 = new Bee("qwe", "asd"); 与:
之类的操作有什么区别var bee1={};
bee1.__proto__=Bee.prototype;
var r=Bee.call(bee1, "qwe", "asd");
if(r!==undefined){
bee1=r;
}
【问题讨论】:
标签: javascript constructor ecmascript-5