在我的“类”方法中,我使用 JavaScript“排序”函数和比较函数:
this.models.sort(this.comparator);
当排序函数调用我的比较器时,是否可以为比较器定义上下文/“this”?
我知道可以这样做:
var self = this;
this.models.sort(function(a, b){return self.comparator.call(self, a, b);});
但是有人知道更简单的方法吗?
非常感谢提前
在我的“类”方法中,我使用 JavaScript“排序”函数和比较函数:
this.models.sort(this.comparator);
当排序函数调用我的比较器时,是否可以为比较器定义上下文/“this”?
我知道可以这样做:
var self = this;
this.models.sort(function(a, b){return self.comparator.call(self, a, b);});
但是有人知道更简单的方法吗?
非常感谢提前
您可以使用绑定:
this.models.sort(this.comparator.bind(this));
bind
构建一个新的绑定函数,它将与您传递的上下文一起执行。
由于这与IE8不兼容,因此通常采用关闭解决方案。但是你可以让它更简单:
var self = this;
this.models.sort(function(a, b){return self.comparator(a, b);});
您可以使用以下方法执行此操作bind
:
this.models.sort(this.comparator.bind(context));