n() {
return scoreCalculator.getSum(this.results) / this.handicap;
}
};
var player1 = {
results: [69, 50, 76],
handicap: 8
};
var player2 = {
results: [23, 4, 58],
handicap: 5
};
var score = Function.prototype.call.bind(scoreCalculator.getScore);
// Score: 24.375
console.log('Score: ' + score(player1));
// Score: 17
console.log('Score: ' + score(player2));
尽管上面的例子是人为的,但是很容易看到用户定义的方法也能像本地方法那样被方便地借用。
Call, bind 和 apply 允许我们改变函数被调用的方式,在借用一个函数时经常被使用。大多数开发者都很熟悉借用本地方法,但是很少知道用户定义的方法也可以。
在过去的几年里,java script中的函数式编程逐渐增多,我希望简短的使用Function.prototype.call.bind来借用方法将变得越来越普遍。
链接:https://www.zcfy.cc/article/borrowing-methods-in-java script-by-david-shariff-794.html
|