gpt4 book ai didi

javascript - 调用原型(prototype)的函数

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

当我运行下面的脚本时,我得到了 sub.hello 不是一个函数的错误。为什么不? Sub 的原型(prototype)是BaseBase 的函数是hello。由于 Sub 没有函数 hello,难道不应该检查其原型(prototype)的函数吗?

function Base() {

}
Base.prototype.hello = function() {
alert("hello");
}

Sub.prototype = Base;
function Sub() {
Base.call(this);
}

var sub = new Sub();
sub.hello();

最佳答案

在 JavaScript 中实现继承的更好方法是使用 Object.create 函数:

function Base() {

}
Base.prototype.hello = function() {
alert("hello");
}

function Sub() {
Base.call(this);
}
Sub.prototype = Object.create(Base.prototype);

// Restore constructor property
Sub.prototype.constructor = Sub;

var sub = new Sub();
sub.hello();

参见 jsFiddle

要进一步阅读,请查看 Mozilla reference

关于javascript - 调用原型(prototype)的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27385367/

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