簡體   English   中英

訪問Javascript原型函數

[英]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;
        }
    }
}

http://jsfiddle.net/YDekw/

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM