gpt4 book ai didi

javascript - 构造函数的继承属性

转载 作者:行者123 更新时间:2023-12-03 08:59:33 25 4
gpt4 key购买 nike

我正在尝试从另一个构造函数中的一个构造函数继承属性。

我有我的事件构造函数:

var Controller  = require('./controller');

var Event = function() {
this.element = 'element';

Controller.call(this);
};

var event = new Event();

还有我的 Controller 构造函数:

var Controller = function() {
console.log(this.element) // prints 'element'.

this.method(); // < error
};

Controller.prototype.method = function() {
console.log(this.element);
};

module.exports = Controller;

我已经可以访问 Controller 中的事件属性和方法,但无法创建自己的 Controller 方法。

可以解决吗?

谢谢。

最佳答案

您应该设置Eventprototype。这会将 Controller 添加到 Event 的原型(prototype)链,从而使 Controller 的方法在 Event 上可用> 的实例。

var Controller  = require('./controller');

var Event = function() {
this.element = 'element';

Controller.call(this);
};

// See here!
Event.prototype = Object.create(Controller.prototype);

// Note other Event.prototype additions must be *after* the above line.
Event.prototype.another = function () {
console.log('Another');

this.method();
};

var event = new Event();

关于javascript - 构造函数的继承属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32355618/

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