在javascript中将方法作为参数传递的惯用方法

在javascript中将方法作为参数传递的惯用方法,javascript,methods,binding,Javascript,Methods,Binding,在javascript中,这是正确的方法吗?或者我应该更改this.listener.simple_组合(它是第三方库)以允许调用方添加如下方法参数 // 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)

在javascript中,这是正确的方法吗?或者我应该更改this.listener.simple_组合(它是第三方库)以允许调用方添加如下方法参数

// 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));
this.listener.simple_combo("right",this.collection.display_next_room,this.collection,{...}); // simple_combo(key,function/method,binding,arguments to the function/method)

可以像这样绑定集合对象

// 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));
this.listener.simple_combo("right",this.collection.display_next_room,this.collection,{...}); // simple_combo(key,function/method,binding,arguments to the function/method)
因此,
将引用正确的收集对象