apply与call都是用来改变js函数this指向的,因为比较简单,就不多赘述了!
Function.prototype.apply = function(context) {
var args
if (arguments.length > 1) {
args = arguments[1]
}
context.fn = this
var result = context.fn(...args)
delete context.fn
return result
}
Function.prototype.call = function(context) {
var args = [...arguments].slice(1)
context.fn = this
var result = context.fn(...args)
delete context.fn
return result
}