JavaScriptthis在函数中的指向及实例详解-创新互联

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

创新互联公司2013年至今,先为腾冲等服务建站,腾冲等地企业,进行企业商务咨询服务。为腾冲企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。

说到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

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


网页标题:JavaScriptthis在函数中的指向及实例详解-创新互联
标题来源:http://scyanting.com/article/cdieoo.html