Javascript 原型(prototype)继承不调用预期的方法

标签 javascript

为什么打印出来的是“bye”而不是“hello”?根据这篇博文中描述的继承链,我本以为它会记录“你好”。

http://sporto.github.io/blog/2013/02/22/a-plain-english-guide-to-javascript-prototypes/

class Test {
  hello() {
    console.log('hello')
  }
}

Test.prototype.hello = function(){
  console.log('bye')
}

const t = new Test
t.hello()

最佳答案

您正在重写“原型(prototype)”上的 hello 定义。 当你做 class Test () ... hello 相当于

测试.prototype.hello

类语法主要是函数的正常原型(prototype)定义之上的糖分。

关于Javascript 原型(prototype)继承不调用预期的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44013672/

相关文章:

javascript - 用于表单提交的自定义帖子字符串

javascript - 按条件过滤,带断路取n

javascript - 句子中第一个单词的首字母大写

javascript - 如何使用 D3 检测散点图中的重叠点?

javascript - 对于 css 封装,shadow dom 是否是 iframe 的可行替代方案?

javascript - 在我的图表中画圈,从圈中获取节点

javascript - 如何在 Canvas 中创建杜瓦尔五 Angular 大楼

javascript - 我可以使用 GWT(或 Script#)用 Java(或 C#)编写单个函数并将它们编译为 JavaScript 吗?

javascript 事件总线架构

javascript - 比function(){return x}更简洁的延迟评估?