xra*_*alf 5 javascript prototype-programming
我正在读这本书,有一章关于原型,有这个难以理解的段落和代码片段.
创建新对象时,可以选择应该是其原型的对象.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);
Run Code Online (Sandbox Code Playgroud)
你能解释一下这段代码,为什么这么好?等等?您会建议哪种资源来研究原型?这是非常困难的.
如果你这样做:
Object.beget(oldObject);
Run Code Online (Sandbox Code Playgroud)
旧对象是传递给函数的 o。接下来是新对象的创建。这种情况发生在:
var F = function(){};
Run Code Online (Sandbox Code Playgroud)
这会创建新函数 F,大写只是为了表明它是一个应该用 new 调用的类。接下来,旧对象被设置为此类的原型,并返回 F 的新实例。
F.prototype = o;
return new F();
Run Code Online (Sandbox Code Playgroud)
你应该意识到,在 JavaScript(没有类)中,对象只是函数的实例。
| 归档时间: |
|
| 查看次数: |
194 次 |
| 最近记录: |