JavaScript: 在属性的事件侦听器中调用私有函数
JavaScript: Call private function within attribute's event listener
在属性的事件侦听器函数中调用私有函数的最佳方式是什么?
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 的点击事件侦听器中调用 bark()
函数的最合适方法是什么?关闭?
如果您需要像这样将一些参数传递给您的函数:
function bark(args1, args2) {}
那么你应该在点击的上下文中调用它:
noseButton.click(function() {
// bark();
});
否则,如果只传一个参数,则不需要这样做:
noseButton.click(bark)
通过这种方式,如果您使用单个参数,它将被解释为事件。
所以答案是,这取决于你要传递多少参数。
试试这个:
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 是安全的,推荐实践如何处理代码的私有部分。
希望对您有所帮助。
在属性的事件侦听器函数中调用私有函数的最佳方式是什么?
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 的点击事件侦听器中调用 bark()
函数的最合适方法是什么?关闭?
如果您需要像这样将一些参数传递给您的函数:
function bark(args1, args2) {}
那么你应该在点击的上下文中调用它:
noseButton.click(function() {
// bark();
});
否则,如果只传一个参数,则不需要这样做:
noseButton.click(bark)
通过这种方式,如果您使用单个参数,它将被解释为事件。
所以答案是,这取决于你要传递多少参数。
试试这个:
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 是安全的,推荐实践如何处理代码的私有部分。
希望对您有所帮助。