请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

请问老师,我收到一个这样的面试题

const obj = {
x:1,
print1:()=>{
console.log(this.x)
},
print2(){
console.log(this.x)
},
print3:function(){
console.log(222,this.x)
}.bind(this)
}
obj.print1()
obj.print2()
obj.print3()
想知道this分别指向什么,为什么

正在回答 回答被采纳积分+3

3回答

双越 2021-11-29 08:24:44

print1 ,箭头函数,this 指向父作用域的 this ,即 window

print2 ,正常的对象方法,执行时 this 指向 obj

print3 ,使用了 bind ,在执行 bind 的时候 this 是 window ,所以执行 print3 时 this 也是 window

0 回复 有任何疑惑可以回复我~
  • 在执行 bind 的时候 this 是 window   老师这里为啥this是window啊
    回复 有任何疑惑可以回复我~ 2023-05-16 16:11:40
  • 双越 回复 慕神9039114 #2
    全局作用域下,this 就是 window
    回复 有任何疑惑可以回复我~ 2023-05-16 20:03:06
promise丶丶 2021-11-28 23:37:49
const obj = {
  x:1,
  print1:()=>{
    console.log(this.x)
  },
  print2(){
    console.log(this.x)
  },
  print3:function(){
    console.log(this.x)
  }.bind(this)
 }

obj.print1()
obj.print2()
obj.print3()

老师格式化了

0 回复 有任何疑惑可以回复我~
双越 2021-10-28 08:26:56

先把代码格式化一下吧。

不会代码格式化,对你以后的提问将会带来很大障碍。

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信