javascript原型-添加回调
我正在使用javascript原型模式,我想添加一个回调。我正在尝试类似的东西: 本质上,我想做的是将回调传递到对象中,并在事件发生时引发该回调javascript原型-添加回调,javascript,jquery,Javascript,Jquery,我正在使用javascript原型模式,我想添加一个回调。我正在尝试类似的东西: 本质上,我想做的是将回调传递到对象中,并在事件发生时引发该回调 Init = function () { var refinement = this; $('.btn').click(refinement.Callback || Callback); }, 当我分离出原型函数,并删除返回{Init:Init,Callback:Callback}工件似乎一切正常 f
Init = function () {
var refinement = this;
$('.btn').click(refinement.Callback || Callback);
},
当我分离出原型函数,并删除
返回{Init:Init,Callback:Callback}代码>工件似乎一切正常
function Refinements() {}
Refinements.prototype.Init = function() {
$('.btn').click(this.Callback);
};
Refinements.prototype.Callback = function() {
alert('default function');
};
var refinements = new Refinements();
refinements.Callback = function(){ alert('new method'); };
refinements.Init();
您遇到了什么问题?你希望这段代码做什么而不是做什么?我希望警报(“新方法”)在btn上触发。单击而不是警报(“默认函数”)。我更喜欢这样的结构:-保持回调函数私有,并在init()
中重写它对我来说更干净。@Christoph-是的,只要它不是以后可能需要更改的内容,就更干净了。它更希望保持回调私有并在init函数中重写它:
var Refinements = function() {};
Refinements.prototype = function() {
return {
init: function() {
$('.btn').click(this.callback);
},
callback: function() {
alert('default function');
}
}
}();
var refinements = new Refinements();
refinements.callback = function() {
alert('new method');
};
refinements.init();
function Refinements() {}
Refinements.prototype.Init = function() {
$('.btn').click(this.Callback);
};
Refinements.prototype.Callback = function() {
alert('default function');
};
var refinements = new Refinements();
refinements.Callback = function(){ alert('new method'); };
refinements.Init();
Foobar = function() {
this.callBack = function() {
alert("Default method");
};
}
Foobar.prototype = {
Init: function() {
var self = this;
$(".btn").click(function() {
self.callBack.call();
});
}
};
var foobar = new Foobar();
foobar.Init();
foobar.callBack = function() {
alert("Boo!");
};