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

  • <legend id='vIkjo'><style id='vIkjo'><dir id='vIkjo'><q id='vIkjo'></q></dir></style></legend>
    <tfoot id='vIkjo'></tfoot>

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

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

      1. JavaScript中 this 的绑定指向规则

        时间:2023-12-08
          <tbody id='bZ1pz'></tbody>
      2. <legend id='bZ1pz'><style id='bZ1pz'><dir id='bZ1pz'><q id='bZ1pz'></q></dir></style></legend>

        • <small id='bZ1pz'></small><noframes id='bZ1pz'>

                  <bdo id='bZ1pz'></bdo><ul id='bZ1pz'></ul>
                  <tfoot id='bZ1pz'></tfoot>

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

                • JavaScript中的this是一个非常重要的概念。对于初学者来说,经常会困惑它的绑定指向规则。在本篇攻略中,我们将对JavaScript中this的绑定规则进行详细讲解,并提供两个示例以帮助读者更好地理解。

                  一、什么是this

                  在JavaScript中,this是一个关键字,用于引用当前函数的执行上下文。尽管this看似简单,但它的绑定规则确实困扰了很多初学者。

                  二、this的绑定规则

                  this的绑定规则十分复杂,但可以总结如下:

                  1. 默认绑定:如果在一个函数中使用this,而且没有任何其他的绑定规则适用,那么this就会默认绑定到全局对象(在浏览器中为window,在Node.js中为global)。
                  function myFunction() {
                    console.log(this);  // 全局对象
                  }
                  
                  myFunction();
                  
                  1. 隐式绑定:当函数作为一个对象的方法被调用时,this会被隐式绑定到该对象。
                  const myObject = {
                    myMethod: function () {
                      console.log(this);  // myObject对象
                    }
                  };
                  
                  myObject.myMethod();
                  
                  1. 明确绑定:在明确绑定中,我们使用call()或apply()方法来指定this的绑定对象。
                  function myFunction() {
                    console.log(this);  // myObject对象
                  }
                  
                  const myObject = {
                    myMethod: function () {
                      myFunction.call(this);
                    }
                  };
                  
                  myObject.myMethod();
                  
                  1. new绑定:在使用new关键字调用函数时,JavaScript会自动将函数中的this绑定到新创建的对象上。
                  function myFunction() {
                    console.log(this);  // 新创建的对象
                  }
                  
                  const myInstance = new myFunction();
                  

                  三、示例说明

                  为了更好地理解this的绑定规则,我们提供以下两个示例。注意,这里的代码都是经过简化和修改以便更好地理解。

                  1. 示例一

                  const myObject = {
                    myMethod: function () {
                      console.log(this);  // myObject对象
                    }
                  };
                  
                  const myFunction = myObject.myMethod;
                  myFunction();
                  

                  在这个示例中,我们使用myObject对象的myMethod方法来定义一个函数myFunction。由于myFunction不是作为myObject的方法被调用,而是直接作为函数被调用,因此它的默认绑定规则会被应用,this会默认绑定到全局对象。因此,这个示例会在控制台输出全局对象。

                  2. 示例二

                  function myFunction(value) {
                    this.value = value;
                  }
                  
                  const myObject = {}
                  const myInstance = new myFunction('hello');
                  
                  console.log(myInstance.value);  // 'hello'
                  console.log(myObject.value);    // undefined
                  

                  在这个示例中,我们定义了一个构造函数myFunction。当使用new关键字创建一个myFunction实例时,JavaScript会将myFunction中的this隐式绑定到新创建的对象上。因此,在这个示例中,myInstance.value会输出'hello',而myObject.value是未定义的。

                  上一篇:用move.js库实现百叶窗特效 下一篇:JavaScript基本类型值-Number类型

                  相关文章

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

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

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