我正在阅读this本书,有一章关于原型的章节和代码片段很难理解。
创建新对象时,可以选择应该是的对象 它的原型。 JavaScript提供的机制是 凌乱而复杂,但可以大大简化。我们将补充 Object函数的beget方法。 beget方法创建一个新的 使用旧对象作为其原型的对象。
if (typeof Object.beget !== 'function') {
Object.beget = function (o) {
var F = function () {};
F.prototype = o;
return new F();
};
}
var another_stooge = Object.beget(stooge);
请您解释一下这段代码,为什么这么好?等等?您会建议哪种资源来研究原型?这是非常困难的。
答案 0 :(得分:2)
如果你这样做:
Object.beget(oldObject);
旧对象是传递给函数的o。接下来是创建新对象。这种情况发生在:
var F = function(){};
这创建了新的函数F,大写只是为了表明它应该是一个应该用new调用的类。 接下来,旧对象设置此类的原型,并返回F的新实例。
F.prototype = o;
return new F();
你应该意识到,在JavaScript(没有类)中,对象只是函数的实例。
答案 1 :(得分:1)
我总是发现JavaScript上的MDN文档很有启发性,对我而言,这个文档很好地涵盖了原型:https://developer.mozilla.org/en/Core_JavaScript_1.5_Guide/Details_of_the_Object_Model