gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 16:19:17 24 4
gpt4 key购买 nike

我有一个 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/

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