为了账号安全,请及时绑定邮箱和手机立即绑定

对象函数this的指向

对象函数this的指向

茅侃侃 2019-02-05 19:56:20
var a = {  b: {    m: function() {      console.log(this.p);     },    p: 'Hello'   } };var hello = a.b.m; hello() // undefinedhello() 为什么是undefined? 这时的this指向哪里了?
查看完整描述

1 回答

?
慕无忌1623718

TA贡献1744条经验 获得超4个赞

默认情况下,this指向事件调用者,在什么环境中调用就指向那个环境,当然this是可以改变的

var a = {  b: {    m: function() {      console.log(this.p);
    },    p: 'Hello'
  }
};var hello = a.b.m;var hello1 = a.b.m.bind(a);var hello2 = a.b.m.bind(a.b);
hello() // undefined  此时this指向全局window,window中无p,所以undefinedhello1() // undefined  此时this指向a对象,a对象中无p,所以说也是undefinedhello2() //Hello  此时指向的是a中的b对象,b对象有p,这样便能打印了


查看完整回答
反对 回复 2019-02-05
  • 1 回答
  • 0 关注
  • 345 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信