JavaScript 的上下文 “排序” 比较函数
Context of JavaScript compare function of "sort"
在我的"class"方法中,我使用JavaScript"sort"函数和一个比较函数:
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));
相关文章:
- 比较从函数和生成的日期对象
- 比较sessionStorage值时,Javascript函数无法调用
- 对象与递归函数的比较
- Jquery 比较函数不适用于整数
- 为什么我的日期比较函数会抛出错误
- 你必须使用比较函数来对一个数字数组进行排序吗
- array.sort()方法中反向比较函数背后的逻辑
- 如何为表排序调整这个比较函数
- 我'我有麻烦的语法为我的比较函数的javascript
- 比较函数返回值错误
- Node.js bcrypt比较函数总是返回false
- 对象比较函数,不懂这个例子
- Javascript:在条件中比较函数和数组的输出
- 为什么是Javascript数组?当比较函数不正确时,排序函数不会抛出错误
- JavaScript数字比较函数-比较与减法
- Jquery自定义字符串比较函数输出百分比
- 比较函数变量和数组循环
- 当空值传递给其中一个参数时,比较函数失败
- JavaScript 的上下文 “排序” 比较函数
- 比较函数与文本值