笔记摘自链接: 视频讲解
绑定方式
默认绑定
函数被调用,this指向全局window对象
function girl (){
console.log(this);// Window
}
girl()
隐式绑定
this 指向该方法所属的对象
let obj = {
name:'小王',
girl:function (){
console.log(this); // { name: '小王', girl: [Function: girl] }
}
}
obj.girl()
硬绑定
使用call,apply方法 强制修改为this指向call,apply中调用的对象
let obj = {
name:'小王',
girl:function (){
console.log(this);
}
}
let obj1 = {
name:'小王1',
}
let obj2 = {
name:'小王2',
}
obj.girl.call(obj1)// { name: '小王1' }
obj.girl.apply(obj2)//{ name: '小王2' }
构造函数绑定
this 指向实例对象
function sayname(name) {
this.name = name
this.sayname = function (){
console.log(this.name);//小李
}
}
var name = '小王'
var obj = new sayname('小李')
obj.sayname()