Javascript 如何覆盖构造函数方法?

标签 javascript oop

我有一个 View 类,它有一个构造方法 initialize 我认为这是一个构造方法,如果错误请纠正我。

var View = function(obj) {
    this.initalize = obj.initalize;
};

我想要实现的是在实例化类时调用某些东西。

我怎样才能像这样传入一个对象?

var chatView = new View({
    initialize: function() {
        alert('Yay for initialization');
    }
});

因此,当我实例化 View 时,我可以将一个对象传递给构造函数,并在键 initialize 中传递一个值是一个函数,这个键在实例化时被调用.

最佳答案

如果我做对了,有一种简单的方法可以实现您想要的:

var View = function(obj) {
    obj.initialize();
}

这样,无论何时实例化 View 类,都会调用初始化函数。

请注意,如果您想在初始化函数中执行真正的“初始化代码”,您可以使用 call (或 apply ):

var View = function(obj) {
    if (typeof obj.initialize === 'function') {
        obj.initialize.call(this);
    }
}

var chatView = new View({
    initialize: function() {
        this.property = 'property';
    }
});

console.log(chatView.property); // outputs property

关于Javascript 如何覆盖构造函数方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34984357/

相关文章:

javascript - 在动态元素上执行 JavaScript 函数 (AJAX)

javascript - 在音频结束后执行操作

java - 如何重构这个简单的类字段

javascript - 使用对象的 for 循环打印出每个唯一对象的属性

PHP OO - 我应该如何处理多个类中的软错误?

javascript - JS 中的正则表达式 - 匹配整个单词,除了末尾的可选 s

javascript - 调整 div 元素的大小?

c# - 对象模型设计选择

javascript - JQuery 绑定(bind)在同一元素上,独特的行为

c# - 什么是标记接口(interface)?