在属性的事件监听器函数中调用私有函数的最佳方法是什么?
JavaScript对象:
function dog() {
/* dog's private attribute: noseButton */
var noseButton = $("#dog-nose-btn");
noseButton.click(function() {
// bark();
});
/* private function bark() */
function bark() {
console.log('woof!');
}
}
那么在noseButton的click事件监听器中调用bark()函数最合适的方法是什么?封?
谢谢你&新年快乐!
答案 0 :(得分:1)
如果您需要将一些参数传递给您的函数,请执行以下操作:
function bark(args1, args2) {}
然后你应该将它调用到click:
的上下文中noseButton.click(function() {
// bark();
});
否则,如果只有一个参数通过,则不需要这样做:
noseButton.click(bark)
通过这种方式,如果您使用此单个参数,它将被解释为事件。
所以anwser是,它取决于你将传递多少参数。
答案 1 :(得分:0)
试试这个:
var dog = (function() {
return {
bark: function() {
console.log('woof!');
}
};
})();
function dog() {
/* dog's private attribute: noseButton */
var noseButton = $("#dog-nose-btn");
noseButton.click(function() {
// bark();
dog.bark();
});
}
Closure是安全的,建议如何处理代码的私有部分。
我希望这会有所帮助。