我更喜欢编程的原型方式,并一直试图在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/

10-14 06:24