假设我使用一些公共方法和一个私有方法获得了这个单例对象:
var QuestionFactory = (function() {
// private method
function google_it_first() { ... }
// public methods
return {
ask_a_stupid_question: function() { ... },
ask_a_relatively_non_stupid_question: function() { ... },
ask_a_difficult_question: function() { ... }
}
})();
我希望能够做的是在调用任何公共方法时首先调用google_it_first
方法。如何在不在每个公共方法中明确调用它的情况下实现它?
答案 0 :(得分:2)
function wrapper() {
return function() {
google_it_first();
return arguments[0](arguments.slice(1,arguments.length);
}
}
ask_a_stupid_question: wrapper(function() { ... })
在我的头脑中,我认为这样可行。