当前位置 博文首页 > Jet_Lover的博客:apply,call,bind重新定义this的区别
let name = 'JackLove', age = 18;
let obj = {
name: 'ClearLove',
objAge: this.age,
myFun: function () {
console.log(this.name + "年龄" + this.age);
let db = {
name: 'UZI',
age: 21
}
obj.myFun.call(db) // UZI 年龄21
obj.myFun.apply(db); // UZI 年龄21
obj.myFun.bind(db)(); // UZI 年龄21
}
}
let name = 'JackLove', age = 18;
let obj = {
name: 'ClearLove',
objAge: this.age,
myFun: function (fm,t) {
console.log(this.name + "年龄" + this.age+"以前" +fm+'现在'+ t);
let db = {
name: 'UZI',
age: 21
}
obj.myFun.call(db,'OMG','RNG') // UZI 年龄21 以前OMG 现在RNG
obj.myFun.apply(db,['OMG','RNG']); // UZI 年龄21 以前OMG 现在RNG
obj.myFun.bind(db,'OMG','RNG')(); // UZI 年龄21 以前OMG 现在RNG
obj.myFun.bind(db,['OMG','RNG'])(); // UZI 年龄21 以前OMG,RNG 现在undefined
}
}
总结:- 三者都可以改变函数的this对象指向。