美文网首页JavaScript
Javascript作用域的经典案例分析

Javascript作用域的经典案例分析

作者: Aniugel | 来源:发表于2018-12-04 13:28 被阅读10次

    this指向小结预览:具体更加详细案例可参考https://blog.csdn.net/chenchunlin526/article/details/78889301
    ① 谁调用或者哪个对象调用this所在的函数,this就指向谁。
    ② 如果有嵌套调用,则其值会被绑定到调用this所在函数的最近的父对象。不论这个this出现在什么样的函数中,层次有多深,结构多复杂,只要看直接包含它的函数即可。简而言之,就是function的this永远指向直接调用它的对象。
    ③当使用new关键字构建一个新的对象,this会绑定到这个新对象。
    ④定时器中的this指向window对象。因为定时器就是全局函数,由window调用
    ⑤ this是Javascript语言的一个关键字,它代表函数运行时自动生成的一个内部对象,只能在函数内部使用。

    <script>
      var x = 30;
      function demo() {
        console.log(x); //undefined
        var x = 10;//这一步可以化解为代码块2中的解构
        console.log(x); //10
        x = 20;//函数局部中声明了x所以为局部变量  此处覆盖了前面的10
        console.log(x); //20
        // function x() {};
        console.log(this.x); //30  this永远指向直接调用它的对象它指向window所以结果和window一样
        console.log(window.x); //30 全局对象
      }
      demo()
      console.log(x);//全局变量30
    </script>
    

    进入函数的作用域后,js会首先读取变量和函数的声明,当变量和函数重名时(不管谁先谁后),函数名优先所以这个地方x指向了function x(){}。

     function demo() {
        console.log()// function x(){}
        var x;
        console.log(x);
        x = 10;
        function x(){}。
      }
    

    相关文章

      网友评论

        本文标题:Javascript作用域的经典案例分析

        本文链接:https://www.haomeiwen.com/subject/nlqmcqtx.html