javascript - util继承于node

标签 javascript node.js inheritance

尝试了解 Node 的 util 包提供的继承支持。

var util = require('util');

//=========================================
function Foo(temp){
    this.y = temp;
}

Foo.prototype.yo = function(){
    console.log("Yo "+this.y);
}

//=========================================

function Bar(){}
util.inherits(Bar,Foo);

var b = new Bar(20);
//b.y = 10; 
b.yo();

这里 b.yo() 打印“Yo undefined”。它调用 Foo 的 yo() 所以我认为继承是有效的。但它不打印 y 值。 如果 b.y = 10 行未注释,则它将打印 10 值。 试图理解为什么会发生这种情况。

最佳答案

Bar 的构造函数为空。

当您继承某些东西时,它会复制原型(prototype)属性,但您必须自己正确实现构造函数。

所以从技术上来说你可以这样做:

function Bar(temp) {
    Foo.call(this, temp);
}

关于javascript - util继承于node,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29997759/

相关文章:

Java动态创建未指定的类

javascript - 为什么带有全局标志的正则表达式会给出错误的结果?

javascript - Firefox DOMContentLoaded 和加载事件在 textarea 中的大内容上非常慢

javascript - 无法将变量作为条件发送到水线查询

node.js - 在 Windows/Azure 中重命名长路径时 npm 3.x 安装失败

c++ - C++ 中的多态性(意外行为)

javascript - 需要确定在 JQuery 移动弹出窗口中单击的按钮并基于此执行操作

node.js - 使用 koa (nodejs) 进行 POST

javascript - 巴别塔 : turn off import directives transpilation

C++ 为什么我可以从派生类调用基类的私有(private)虚函数?