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

<!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?

宝慕林4294392
浏览 569回答 1
1回答

慕哥6287543

首先要清楚&nbsp;odd&nbsp;并不是一个方法,只有当函数作为对象的属性调用时,才称之为方法//方法o.add();//函数add();当函数作为方法被调用时&nbsp;this&nbsp;的指向是调用函数的对象(除非显式的被修改)当函数直接被调用时&nbsp;this&nbsp;指向&nbsp;window(在严格模式中指向&nbsp;undefined)补充:当函数作为构造函数被调用时(使用new),&nbsp;this指向一个新对象,这个新对象的原型指向构造函数的prototype属性//构造函数 new&nbsp;Add();
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript