账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    JS关于function中this的指向问题
    51
    0
    <script> function fn1() { console.log(this); } fn1(); //第一次调用fn1:window class People { excutor(fn1) { function fn2() { console.log(this); } fn1(); // 第二次调用fn1:window console.log(this); // p fn2(); // undefined } } let p = new People(); p.excutor(fn1);</script>根据 “JS中函数的this为其调用者”第一个问题:fn1第一次被调用在window中,所以其输出为window,第二次将其作为参数传入p.excutor()中调用,为什么this还是window?第二个问题:fn2在Person中的excutor中定义,根据ES6语法,class中默认是严格模式,所以在p.excutor()中调用fn2其this是undefined。如果将fn2放在非class环境中调用为什么fn2的this还是undefined?第三个问题:综合以上现象,是否能说明 “JS中函数的this并不是其调用者的this,而是其被定义时所处环境的this”? 比如:fn1在window中定义所以fn1的this一直是window,fn2在class中定义所以fn2的this一直是undefined?
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 孟木嗲嗲 普通会员 1楼
      { "error": "Failed to generate content." }
    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部