【JavaScript】彻底明白this在函数中的指向

一、this,其实可以类比成人

  说到this的话,我们在js中主要研究的都是函数中的this,在javascript中,this代表当前行为的执行主体,而context代表的是当前行为执行的的环境(区域)。

  例如男神在北理珠吃饭,这句话分别代表的含义如下

  男神    -->> 主体(this)

  吃饭    -->> 函数(function)

  北理珠 -->> 环境(context)

   -->>说明:吃饭是函数,男神是函数的主体,北理珠就是当前行为的执行环境(context),主体跟上下文没有必然的联系,主体只与函数有关系;就好像男神吃饭,其实哪里都可以吃饭,吃饭这个动作的主体永远都是男神,环境是可以变化的。

  -->>结论:上面,其实也可以说明,this指的是谁,和函数在哪里定义和执行是没有任何关系的。

 

二、在函数中,如何区分this

  1、函数执行,首先看函数名前面是否有“.” ,有的话, “.”前面是谁,this就是谁;没有的话this就是window

//例子一 console.log(this); function eat() { console.log(this); //this->window } ~function() { eat(); //this->window }(); //例子二 function fn() { console.log(this); } var obj = {fn: fn}; fn(); //this->window obj.fn() //this->obj //例子三 function sum() { fn(); } sum(); //this->window //例子四 var oo = { sum: function() { console.log(this); fn(); } } oo.sum(); //首先sum函数里面,第一个输出this为oo;之后执行fn(),this为window

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zyspdd.html