• <i id='p74kH'><tr id='p74kH'><dt id='p74kH'><q id='p74kH'><span id='p74kH'><b id='p74kH'><form id='p74kH'><ins id='p74kH'></ins><ul id='p74kH'></ul><sub id='p74kH'></sub></form><legend id='p74kH'></legend><bdo id='p74kH'><pre id='p74kH'><center id='p74kH'></center></pre></bdo></b><th id='p74kH'></th></span></q></dt></tr></i><div id='p74kH'><tfoot id='p74kH'></tfoot><dl id='p74kH'><fieldset id='p74kH'></fieldset></dl></div>

      • <bdo id='p74kH'></bdo><ul id='p74kH'></ul>

        <tfoot id='p74kH'></tfoot>
      1. <small id='p74kH'></small><noframes id='p74kH'>

        <legend id='p74kH'><style id='p74kH'><dir id='p74kH'><q id='p74kH'></q></dir></style></legend>

        JavaScript深入刨析this的指向以及如何修改指向

        时间:2023-12-08
          <legend id='iGrSn'><style id='iGrSn'><dir id='iGrSn'><q id='iGrSn'></q></dir></style></legend>

              <small id='iGrSn'></small><noframes id='iGrSn'>

                <bdo id='iGrSn'></bdo><ul id='iGrSn'></ul>

              • <tfoot id='iGrSn'></tfoot>

                    <tbody id='iGrSn'></tbody>
                  <i id='iGrSn'><tr id='iGrSn'><dt id='iGrSn'><q id='iGrSn'><span id='iGrSn'><b id='iGrSn'><form id='iGrSn'><ins id='iGrSn'></ins><ul id='iGrSn'></ul><sub id='iGrSn'></sub></form><legend id='iGrSn'></legend><bdo id='iGrSn'><pre id='iGrSn'><center id='iGrSn'></center></pre></bdo></b><th id='iGrSn'></th></span></q></dt></tr></i><div id='iGrSn'><tfoot id='iGrSn'></tfoot><dl id='iGrSn'><fieldset id='iGrSn'></fieldset></dl></div>
                • JavaScript深入刨析this的指向以及如何修改指向

                  什么是this

                  在JavaScript中,this是一个十分重要且常用的关键字,用来指代当前函数执行上下文中的对象。而这个对象指代的意义在不同的使用场景下会发生变化,因此我们需要深入学习并理解this的指向。

                  在JavaScript中,this的指向可以分为以下4种情况:

                  1. 作为对象的方法调用:this指向该对象
                  2. 作为普通函数调用:this指向全局对象window
                  3. 作为构造函数调用:this指向新对象
                  4. 通过apply、call、bind对函数进行调用:this指向绑定的对象

                  如何修改this指向

                  在JavaScript中,想要修改函数内部this的指向需要借助一些函数方法来实现:

                  1. bind方法

                  bind方法会创建一个新的函数,并且将原来的函数中的this绑定到指定对象上。

                  例如:

                  var obj = {
                    name: 'John'
                  };
                  
                  function getName() {
                    return this.name;
                  }
                  
                  var getNameBind = getName.bind(obj);
                  console.log(getNameBind()); // 输出:John
                  

                  2. call方法与apply方法

                  call方法与apply方法都可以改变函数内部this的指向。

                  不同的是,call方法需要明确传递参数列表,而apply则需要将参数列表封装成一个数组传递给函数。

                  例如:

                  var obj1 = {
                    name: 'John'
                  };
                  
                  var obj2 = {
                    name: 'Mary'
                  };
                  
                  function getName() {
                    return this.name;
                  }
                  
                  console.log(getName.call(obj1)); // 输出:John
                  console.log(getName.apply(obj2)); // 输出:Mary
                  

                  示例说明

                  示例1:方法调用中的this

                  对象的方法调用时,this指向该对象。如下代码:

                  var obj = {
                    name: 'John',
                    getName: function() {
                      return this.name; 
                    }
                  };
                  
                  console.log(obj.getName()); // 输出:John
                  

                  示例2:构造函数调用中的this

                  通过关键字new来调用构造函数时,this会指向新创建的对象。如下代码:

                  function Person(name) {
                    this.name = name;
                    this.getName = function() {
                      return this.name;
                    }
                  }
                  
                  var person = new Person('John');
                  console.log(person.getName()); // 输出:John
                  

                  通过构造函数创建的对象可以“继承”构造函数的属性和方法,这是一种加强版的对象字面量语法。

                  总结

                  通过以上介绍与示例,我们可以初步认识JavaScript中this的指向以及如何修改指向的方式。合理的使用this关键字可以使我们的代码更加简洁和高效。

                  上一篇:javascript中this关键字详解 下一篇:原生js实现星星闪烁效果

                  相关文章

                  <small id='NY3S4'></small><noframes id='NY3S4'>

                  1. <tfoot id='NY3S4'></tfoot>
                  2. <i id='NY3S4'><tr id='NY3S4'><dt id='NY3S4'><q id='NY3S4'><span id='NY3S4'><b id='NY3S4'><form id='NY3S4'><ins id='NY3S4'></ins><ul id='NY3S4'></ul><sub id='NY3S4'></sub></form><legend id='NY3S4'></legend><bdo id='NY3S4'><pre id='NY3S4'><center id='NY3S4'></center></pre></bdo></b><th id='NY3S4'></th></span></q></dt></tr></i><div id='NY3S4'><tfoot id='NY3S4'></tfoot><dl id='NY3S4'><fieldset id='NY3S4'></fieldset></dl></div>
                    • <bdo id='NY3S4'></bdo><ul id='NY3S4'></ul>
                  3. <legend id='NY3S4'><style id='NY3S4'><dir id='NY3S4'><q id='NY3S4'></q></dir></style></legend>