我目前有一個功能,我最後在其他幾個功能中調用。而不是寫像這樣的:在其他功能中自動調用功能
function foo(){
baz();
}
function bar(){
baz();
}
function baz(){
}
有沒有什麼辦法讓baz()
運行自動調用funcions什麼時候?也許通過修改其他函數的原型並將其添加爲IIFE?這可能嗎?
我目前有一個功能,我最後在其他幾個功能中調用。而不是寫像這樣的:在其他功能中自動調用功能
function foo(){
baz();
}
function bar(){
baz();
}
function baz(){
}
有沒有什麼辦法讓baz()
運行自動調用funcions什麼時候?也許通過修改其他函數的原型並將其添加爲IIFE?這可能嗎?
你的意思是像「模板方法」設計模式。如果是這樣,試試這個:
function inherit(proto) {
var F = function() { };
F.prototype = proto;
return new F();
}
var template = {
process: function() {
this.mainfunction();
this.baz();
}
baz:function(){
}
};
(function run() {
var foo = inherit(template);
foo.mainfunction = function(){
}
foo.process();
var bar = inherit(template);
bar.mainfunction = function(){
}
bar.process();
}())
我不認爲某些東西存在開箱即用,但你可以以某種方式僞造它。試試這個[問題](http://stackoverflow.com/questions/9622639/how-do-i-create-a-javascript-listener-function-that-will-perform-an-action-when) – Catalin
有沒有辦法標準函數結束方法/事件這樣我相信。雖然不是很乾淨,但可以用調用舊函數的包裝來替換這些函數引用。 http://jsfiddle.net/L2uWt/ –
@FabrícioMatté是的,我自己也有類似的想法。但正如你所說,它不是很乾淨。所以我會說,犧牲可讀性是不值得的。感謝您的意見。 – Johan