[英]JS Event Listener with a function that has one parameter
不知道如何為這個問題設置適當的標題,所以我想這就是為什么我找不到與之相關的任何東西。
如果標題不重復的話,標題的建議會很好。
我不知道如何使用必須傳遞一個參數的函數實際添加/刪除事件監聽器。
下面是一個簡單的示例:
window.addEventListener('resize', anFunction, false);
window.removeEventListener('resize', anFunction, false);
但是,如何設置必須包含參數的相同函數呢? 下面的示例當然是無效的,因為我不知道該怎么做。
window.addEventListener('resize', anFunction(parameter), false);
window.removeEventListener('resize', anFunction(parameter), false);
例如,您可以使用以下之一:
包裝功能:
function resizeListener() { anFunction(parameter); }
var resizeListener = anFunction.bind(void 0, parameter);
箭頭功能 (EcmaScript6):
var resizeListener = e => anFunction(parameter);
接着:
window.addEventListener('resize', resizeListener, false);
window.removeEventListener('resize', resizeListener, false);
還有一個相對較新的(IE9 +) function.prototype.bind方法
它是這樣的:
var myVar = "123";
var myHandler = function(myVar) {
console.log("Resize handler with arg: ", myVar);
// => Resize handler with arg: 123
};
window.addEventListener("resize", myHandler.bind(this, myVar));
它旨在用於控制回調的上下文( this
值),但是它也可以很好地用於您所描述的事情。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.