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

不明白为什么js中this的指 ?

不明白为什么js中this的指 ?

宝慕林4294392 2018-08-07 11:10:04
<!DOCTYPE html><html>  <head>    <meta charset="utf-8">      </head>  <body>    <div id="example"></div>    <script type="text/javascript">      function add(){        var ss = '3';        function odd(){          console.log(this);          return '1';        }        odd();      }      add();    </script>  </body></html>为什么这里的this 指向 window ? 我是看到作用域链的时候,实际在调用odd方法时创建了上下文,this为什么指向window?
查看完整描述

1 回答

?
慕哥6287543

TA贡献1831条经验 获得超10个赞

首先要清楚 odd 并不是一个方法,只有当函数作为对象的属性调用时,才称之为方法

//方法o.add();//函数add();
  • 当函数作为方法被调用时 this 的指向是调用函数的对象(除非显式的被修改)

  • 当函数直接被调用时 this 指向 window(在严格模式中指向 undefined)


补充:

  • 当函数作为构造函数被调用时(使用new), this指向一个新对象,这个新对象的原型指向构造函数的prototype属性

//构造函数
new Add();


查看完整回答
反对 回复 2018-09-23
  • 1 回答
  • 0 关注
  • 557 浏览
慕课专栏
更多

添加回答

举报

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