2014-10-05 52 views
1
// This didn't work because "this" in display_previous_room was Window instead of a Collection object. 
this.listener.simple_combo("left",this.collection.display_previous_room); 

// This worked 
this.listener.simple_combo("right",this.collection.display_next_room.bind(this.collection)); 

这是在javascript中使用它的正确方法吗?或者我应该改变this.listener.simple_combo(这是一个第三方库),以允许呼叫者添加方法的参数是这样JavaScript中传递方法的习惯方法

this.listener.simple_combo("right",this.collection.display_next_room,this.collection,{...}); // simple_combo(key,function/method,binding,arguments to the function/method) 

回答

1

可以绑定集合对象这样

this.listener.simple_combo("right", this.collection.display_next_room.bind(this.collection)); 

所以this将引用正确的收集对象。