gpt4 book ai didi

javascript - 为什么这个简单的 Object.create 示例不起作用?

转载 作者:行者123 更新时间:2023-11-30 12:52:34 25 4
gpt4 key购买 nike

下面的代码是说对象没有方法呵呵

var A = function () {
this.hehe = function () { };
};
var B = function () {};
B.prototype = Object.create(A.prototype, {
constructor: {
value: B,
enumerable: false,
writable: true,
configurable: true
}
});
var _b = new B();
_b.hehe();

最佳答案

如果您希望 B 能够访问该函数,您需要在 A 的原型(prototype)中定义它。

A.protototype.hehe = function(){
//do something
};

b 中也缺少对父构造函数的调用。

有了 this.hehe,A 的每个实例都获得了它自己的 hehe 函数,因此不在原型(prototype)中。

还有一个更好的原型(prototype)继承实现如下 - 我知道这是一个意见问题。

function __extends(child,parent){ //Global function for inheriting from objects

function Temp(){this.constructor = child;} //Create a temporary ctor
Temp.prototype = parent.prototype;
child.prototype = new Temp(); //Set the child to an object with the child's ctor with the parents prototype
}

var B = (function(_parent){
__extends(B,A);

function B(){

_parent.call(this);
}

})(A);

关于javascript - 为什么这个简单的 Object.create 示例不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20415143/

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