我更喜欢编程的原型方式,并一直试图在javascript中理解它。
我在The Good Parts中看到了以下代码:
function beget(o){
function F(){
F.prototype = o;
};
return new F();
};
我一点都不明白。如果您要做的只是将原型设置为过去的对象,那么您不能这样做:
var parent = {
num = 66;
};
var child = {
prototype: parent
};
不过,这似乎不起作用,因为child.num返回为未定义。您如何描述javascript原型编程以及您的方法是什么?
谢谢你们
最佳答案
您只能将prototype
添加到功能对象。通过new
调用时,它将用作其原型。
顺便说一句,您引用的函数是新版ECMAScript的一部分,为Object.create
(带有附加的propertiesObject
参数)。
让我这样说:{object}
是一个单例。但是,function() object
是构造函数,也就是说,当用new
调用时,会创建一个实例(通过执行函数的主体并使用构造函数的原型)。当然,原型也可以是功能对象,也可以有自己的原型,等等。专业化和通用化意味着在原型链上走来走去。
关于javascript - 在JavaScript中进行原型(prototype)面向对象编程的最佳方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5917159/