gpt4 book ai didi

javascript - 在 Javascript 中设置没有 __proto__ 的函数原型(prototype)

转载 作者:行者123 更新时间:2023-11-28 00:29:24 26 4
gpt4 key购买 nike

我想创建一个以对象作为原型(prototype)的构造函数。

例如:

var constructor=function(){
this.foo=bar;
}

var constructorProto={
method:function(){}
}

constructor.__proto__=constructorProto;

constructor.method();
new constructor;

功能演示:http://jsfiddle.net/juwt5o97/

这允许我在调用new之前传递构造函数并修改它。但是,我不想使用 __proto__Object.setPrototypeOf()。有没有“正确”的方法来做到这一点?

最佳答案

如果您想扩展第一个类的原型(prototype)(以便实例继承方法),您可以使用 Object.create 来实现:

var ClassA=function(){
this.foo='bar';
}

var protoObject = {
method:function(){alert('t');}
}

ClassA.prototype = Object.create(protoObject);

new ClassA().method();

如果您只想将静态函数附加到第一个函数,那么您可以这样做:

for (var property in protoObject) {
if (typeof protoObject[property] == 'function') {
ClassA[property] = protoObject[property];
}
}

ClassA.method();

关于javascript - 在 Javascript 中设置没有 __proto__ 的函数原型(prototype),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29154750/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com