为什么要改变 this 的指向?因为 this 的指向太灵活,太模糊,时不时的让丈二和尚摸不着头脑。或者一些其他的原因,需要让 this 指向其他对象,从而可以使用其他对象的方法。用法示例function f(x, y){
console.log(this.x + this.y)
}
// 定义全局变量
var x=3, y =4;
// 在 nums 对象中定义
var nums={
x:40,
y:60
}
f(x,y) // 7
f.call(nums,x,y) //100
f.apply(nums,[x,y]) //100
var f2 = f.bind(nums,x,y) //Function
f2() //100call() 与 apply()f.call(nums,x,y)
f.apply(nums,[x,y])将 f 中的 this 指向更改为 nums 对象,此时 x 与 y 的值均是 nums 对象中定义的 call() 与 apply() 的区别 两者的区别,主要在于传参的形式不同,call() 需要一个参数列表,一个一个的写参数
Minghui