[英]Accessing a Javascript prototype function
我有一個原型函數,如event。
原型
Func("input_element_id").event("keyup",function(){
alert("Works on keyup in an Input!");
}
Func.prototype= {
keyup: function(func){
//adding event listener and callback using func
},
event: function(e,func) {
//what to do here to call function "keyup"
}
};
原型名稱在變量e
。 但是如何使用變量名稱調用該function
?
我這樣做,所以傳遞“keyup keydown”將添加keyup和keydown偵聽器,這比單獨調用每個原型函數更好。
謝謝。
var Func = function(element){
this.element = element;
};
Func.prototype = {
keyup: function(handler){
this.element.onkeyup = handler;
},
event: function(e,handler){
switch(e){
case 'keyup':
return this.keyup(handler);
break;
}
}
}
用this
訪問接收對象。
this.keyup(func);
假設一個體面的瀏覽器或ES5墊片,看起來你想這樣做:
e.split(" ").forEach(function(f) {
this[f](func);
}, this);
請注意,它只是與點運算符一起使用的任何對象,並且可以是任何東西。 例如:
var f = new Func("input_element_id");
window.event = f.event;
window.event(); // this is window
實現這一目標的best way
是:
events: function(events,func) {
this[events](func);
}
}
感謝CrazyTrain
,正如他在Comments
提到的那樣。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.