var name ="window" //{}-----对象 //{}-----代码块 var personA={ name:'personA', foo1:function(){ console.log(this.name) }, foo2:()=>console.log(this.name), foo3:function(){ return function(){ console.log(this.name) } }, foo4:function(){ //console.log(this) return()=>{ console.log(this.name) } } } var personB={name:'personB'} //question personA.foo1();//隐式绑定personA personA.foo1.call(personB);//显示绑定,personB personA.foo2();//上级作用域window,箭头函数没有this绑定 personA.foo2.call(personB)//上级作用域window,箭头函数没有this绑定 personA.foo3()();//默认绑定:window personA.foo3.call(personB)()//默认绑定:window personA.foo3().call(personB)//显示绑定personB personA.foo4()();//personA this---personA personA.foo4.call(personB)();//personB this---personB personA.foo4().call(personB);//personA this---personA
js中this指向分析
最新推荐文章于 2024-10-07 09:24:46 发布