JavaScript this指向总结

this是 JavaScript 语言的一个关键字,它是函数/方法运行时,在函数/方法内部自动生成的一个对象,只能在函数/方法内部使用。

在不同使用场合,this有不同的值。总的来说,this就是函数/方法运行时所在的环境对象。下面分四种情况,详细讨论this的用法。

1.函数调用:单纯作为函数调用时属于全局性调用,因此this就代表全局对象(window)


2.作为对象的方法调用:函数作为对象的方法被调用,那么this指向这个直接调用方法的对象(如果是二级对象,那么指向被调用方法最近的对象)。


3.构造函数中的this:指向创建的函数实例


4.箭头函数中的this:箭头函数本身没有this指向,它会捕获自己定义所处的外层执行环境(即父级作用域里的this),并且继承这个this值,指向当前定义时所在的对象。箭头函数的this指向在被定义的时候就确定了,之后永远都不会改变。即使使用call()、apply()、bind()等方法改变this指向也不可以。

例子:定义了全局变量isObject,那么此处箭头函数被定义时出于window中,此时this指向window对象

5.当一个元素被绑定事件处理函数时,this指向被点击的这个元素。

6.严格模式下(‘use strict’),没有this,this为undefind

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • JS中this的指向有些复杂,分为较多种的情况。此外,在严格模式[https://developer.mozill...
    振翅大魔王阅读 613评论 0 1
  • 前置知识:作用域与this 要想彻底明白 的行为,就要明白作用域和 的关系。中采用的词法作用域,即在函数声明时,就...
    阿羡吖阅读 229评论 0 0
  • 浏览器环境 在全局作用域中,this的指向是window对象 ES5函数中this的指向 在非严格模式下,函数中的...
    刘朴阅读 371评论 0 0
  • 全局环境下 在全局环境下,this 始终指向全局对象(window), 无论是否严格模式; 函数上下文调用 函数直...
    简单tao的简单阅读 272评论 0 0
  • 1.概念 在JavaScript中,this 是指当前函数中正在执行的上下文环境,因为这门语言拥有四种不同的函数调...
    BluesCurry阅读 1,198评论 0 2