javascript - 重新定义原型(prototype)方法

标签 javascript prototype

我正在尝试在 JavaScript 中模拟“类”语法。重新定义对象时如何从对象的原型(prototype)中调用该函数?在示例中,我尝试扩展 Bear 对象的声音功能。

function Animal(name) {
    this.name = name;
}
Animal.prototype.sound = function() { console.log("I'm " + this.name); }

function Bear(name) {
    Animal.call(this, name)
}
Bear.prototype = new Animal();
Bear.prototype.sound = function() { this.prototype.sound(); console.log("growl!"); }

const cal = new Bear("Callisto")
cal.sound() // Should be: I'm Callisto growl!
console.log(cal)

最佳答案

您可以直接访问 Animals 原型(prototype)上的方法:

Bear.prototype.sound = function() { 
 Animal.prototype.sound.call(this); 
 console.log("growl!"); 
};

关于javascript - 重新定义原型(prototype)方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54379822/

相关文章:

javascript - 使用jquery预设html复选框

屏幕休眠时 JavaScript setInterval 延迟

javascript - 仅将数组的最后一个元素添加到现有数组中

javascript - 如何在 IE8 中测试对象文字

javascript - 如何在 Javascript 中使用 DOMStringMap?

javascript - 替换内置函数的原型(prototype)是否非法?

javascript - 防止更改 Javascript 原型(prototype)对象中的属性值

javascript - 从 React 中的异步调用批量状态更新的最佳方法是什么?

javascript - JS 几个函数通过原型(prototype)

javascript - 延迟主体的渲染,直到 Javascript 变量可用