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