2016-06-02 8 views
0

ちょっと私は、 'イベント'とコールバック関数 "fun"をMyEventsのプロトタイプに追加しようとしていて、以下のコードの一部を理解していません!私のコードのプロトタイプにプロパティを追加する適切な方法

function MyEvents(events){ 
this.events={}; 
} 

MyEvents.prototype.adding=function(event,func){ 
var array=[] 
this.array.push(func); 
this.array.push(event); 
this.events[event] = array; //I don't understand this part-why is that necessary? 
} 

説明できますか? ありがとうございます!また

//constructor function 
function MyEvents(){ 
    this.events={}; 
} 
//extending the prototype with a function called adding 
MyEvents.prototype.adding = function(event,func){ 
    this.events[event] = func 
} 
//instantiating a new object using the new operator on the constructor function 
my_new_obj = new MyEvents() 
//calling the adding function on the prototype and passing it the two arguments 
my_new_obj.adding('test',function greet(){console.log('Hello')}) 
//calling the function you just added 
my_new_obj['events']['test']() 

、あなたはプロトタイプに追加する方法(機能が)あなたのインスタンス化my_new_objプロパティにアクセスすることができますので、これは非常に強力であることに注意してください:

+3

'this.array'の代わりに' array'だけがあるはずです。もう少し文脈はありますか? – BoltKey

+0

これを使わずに試しました。私はthis.events [event] =配列を含めない限りうまくいきませんでした。私はなぜそれを含める必要があるのか​​分かりません。エクササイズの一部分です。今のところ、コールバック関数とイベントをプロトタイプの配列に追加する必要があります。 – javascripting

+0

@javascripting:コードの残りの部分を表示してください。アレイはどこで使われていますか?それで、なぜあなたがその '.events'オブジェクトに格納する必要があるのか​​を知ります。 – Bergi

答えて

0

ほとんどの場合、あなたはこのような何かをしようとしています。

+0

いいえ、OPは本当に機能の配列を必要としています。 – Bergi

関連する問題