在我的“类”方法中,我使用了JavaScript的“排序”功能以及一个比较功能:
this.models.sort(this.comparator);
Run Code Online (Sandbox Code Playgroud)
当sort函数调用我的比较器时,是否可以为比较器定义上下文/“ this”?
我知道可以这样做:
var self = this;
this.models.sort(function(a, b){return self.comparator.call(self, a, b);});
Run Code Online (Sandbox Code Playgroud)
但是有人知道更简单的方法吗?
在此先感谢
您可以使用bind:
this.models.sort(this.comparator.bind(this));
Run Code Online (Sandbox Code Playgroud)
bind 构建一个新的绑定函数,该函数将与您传递的上下文一起执行。
由于此版本与IE8不兼容,因此通常采用封闭解决方案。但是您可以使其更简单:
var self = this;
this.models.sort(function(a, b){return self.comparator(a, b);});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
826 次 |
| 最近记录: |