THIS的几种基本情况说明

256 阅读1分钟

我们研究的THIS,都是研究函数私有上下文中的THIS

  • 因为全局上下文中的this->window
  • 块级上下文中没有自己的this,在此上下文中遇到的this,都是其所处环境(上级上下文)中的this
  • ES6中的箭头函数和块级上下文类似,也是没有自己的this,遇到的this也是其上级上下文中的THIS是执行主体:通俗来讲,是谁把它执行的,而不是在哪执行的,也不是在哪定义的,所以THIS是谁和在哪 执行以及在哪定义都没有直接的关系;

想搞定THIS,我们可以按照以下总结的规律区分析!!

  • 给DOM元素进行事件绑定(不论是DOM0还是DOM2),当事件行为触发,绑定的方法执行,方法中的THIS是当前DOM元素本身!!
  • 当方法执行,我们看函数前面是否有“点”
    • 有:“点”之前是谁THIS就是谁
    • 没有:THIS就是window(非严格模式)或者undefined(严格模式 "use strict")
    • 匿名函数(自执行函数或者回调函数等)中的THIS一般都是window/undefined,除非做过特殊处理!!