<legend id='sVkwW'><style id='sVkwW'><dir id='sVkwW'><q id='sVkwW'></q></dir></style></legend>
  • <tfoot id='sVkwW'></tfoot>
        <bdo id='sVkwW'></bdo><ul id='sVkwW'></ul>

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

        <i id='sVkwW'><tr id='sVkwW'><dt id='sVkwW'><q id='sVkwW'><span id='sVkwW'><b id='sVkwW'><form id='sVkwW'><ins id='sVkwW'></ins><ul id='sVkwW'></ul><sub id='sVkwW'></sub></form><legend id='sVkwW'></legend><bdo id='sVkwW'><pre id='sVkwW'><center id='sVkwW'></center></pre></bdo></b><th id='sVkwW'></th></span></q></dt></tr></i><div id='sVkwW'><tfoot id='sVkwW'></tfoot><dl id='sVkwW'><fieldset id='sVkwW'></fieldset></dl></div>
      1. JS 中在严格模式下 this 的指向问题

        JS 中的 this 表示函数执行时所在的上下文对象,在不同的情况下,this 指向的对象是不同的,这是 JS 中一个比较重要,也比较复杂的概念。
          <bdo id='MAxAJ'></bdo><ul id='MAxAJ'></ul>

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

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

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

                  JS 中的 this 表示函数执行时所在的上下文对象,在不同的情况下,this 指向的对象是不同的,这是 JS 中一个比较重要,也比较复杂的概念。

                  在严格模式下,this 指向的对象与非严格模式下不同。下面我们通过两个示例来详细讲解在严格模式下 this 的指向问题。

                  示例一

                  'use strict';
                  
                  function showThis() {
                    console.log(`in showThis, this is ${this}`);
                  }
                  
                  showThis(); // TypeError: this is undefined
                  

                  在函数 showThis 内部,由于是在严格模式下执行,this 并没有指向全局对象,而是 undefined,因为严格模式下,函数内部的 this 不能默认指向全局对象。

                  示例二

                  'use strict';
                  
                  const person = {
                    firstName: '张',
                    lastName: '三',
                    fullName: function() {
                      console.log(`当前对象中的 this: ${this}`);
                      function getName() {
                        console.log(`函数中的 this: ${this}`);
                        return this.firstName + this.lastName;
                      }
                      return getName();
                    }
                  }
                  
                  person.fullName(); // 函数中的 this: undefined
                                     // Uncaught TypeError: Cannot read property 'firstName' of undefined
                  

                  在函数 fullName 中调用函数 getName,其中 getName 函数是一个独立函数,它的执行环境并不是在 person 对象下。由于在严格模式下,独立函数内部的 this 不会指向全局对象,所以此时的 this 是 undefined,导致后面的 firstName 和 lastName 操作都会报错。

                  为了解决这个问题,我们可以使用 call、apply 或 bind 方法明确指定 this 的指向,或者使用箭头函数来绑定上下文。

                  'use strict';
                  
                  const person = {
                    firstName: '张',
                    lastName: '三',
                    fullName: function() {
                      const _this = this;
                      function getName() {
                        console.log(`函数中的 this: ${this}`);
                        return _this.firstName + _this.lastName;
                      }
                      return getName.call(_this);
                    }
                  }
                  
                  person.fullName(); // 函数中的 this: { firstName: '张', lastName: '三', fullName: [Function: fullName] }
                                     // 张三
                  

                  以上就是关于在严格模式下 this 的指向问题的详细说明,如果熟悉了这个概念,就可以更好地理解 JS 中的许多复杂问题了。

                  本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!

                  相关文档推荐

                  treetable.js没有checked做联动。于是自己基于treetable开发的一个小功能,希望能和大家一起交流一下。 1. 在当前HTML文档checked监听函数中增加以下代码 //联动 table.on('checkbox(quan_list)', function(obj){ //console.log(obj); //当前id var id = obj.
                  当使用Javascript的attachEvent来绑定事件时,我们希望能够给事件处理函数传递一些参数,但是attachEvent本身并不支持传递参数。下面介绍两种解决方法。
                  KnockoutJS是一款流行的JavaScript库,针对一个web应用程序的建立提供了比较好的基础架构。其中,表单的数据绑定功能是KnockoutJS最为常用的功能之一。本文将详细讲解KnockoutJS 3.x
                  下面是用javascript实现改善用户体验之alert提示效果的完整攻略。
                  在学习JavaScript编写贪吃蛇游戏之前,需要掌握以下的前置知识:
                    <tbody id='D8WXL'></tbody>
                    <bdo id='D8WXL'></bdo><ul id='D8WXL'></ul>
                  • <legend id='D8WXL'><style id='D8WXL'><dir id='D8WXL'><q id='D8WXL'></q></dir></style></legend>

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

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