call() , apply() ,bind()的用法
- 作用:改变this指向,可以传递参数 - 语法: A.call(B, 参数1, 参数2) A.apply(B, [ 参数1, 参数2]) A.bind(B, 参数1, 参数2)()
var name = "小王", age = 17 var obj = { name: '小张', age: this.age, myAge: function (fm, t) { // console.log(this) console.log(this.name + "年龄" + this.age, "来自" + fm + "去往" + t) } } const obj1 = { name: '小黄', age: 2 } // 参数1:this的指向 // 参数2:传入的参数 call,bind传的是序列,apply传的是数组 obj.myAge.call(obj1, "东土大唐", "西天") obj.myAge.apply(obj1, ["东土大唐", "西天"]) obj.myAge.bind(obj1, "东土大唐", "西天")() // bind 返回的是一个函数,需要调用才可以执行