亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

JavaScript中的this機(jī)制

 更新時(shí)間:2016年01月30日 16:57:17   投稿:hebedich  
簡(jiǎn)言之,this是JavaScript語(yǔ)言中定義的眾多關(guān)鍵字之一,它的特殊在于它自動(dòng)定義于每一個(gè)函數(shù)域內(nèi),但是this倒地指引啥東西卻讓很多人張二摸不著頭腦。希望看完這篇文章了你能回答出來this到底指引個(gè)甚。

JavaScript有自己的一套this機(jī)制,在不同情況下,this的指向也不盡相同。

全局范圍

console.log(this); //全局變量

全局范圍使用this指向的是全局變量,瀏覽器環(huán)境下就是window。

注:ECMAScript5的strict模式不存在全局變量,這里的this是undefined。

函數(shù)調(diào)用中

function foo() {
  console.log(this);
}

foo(); //全局變量

函數(shù)調(diào)用中的this也指向全局變量。

注:ECMAScript5的strict模式不存在全局變量,這里的this是undefined。

對(duì)象方法調(diào)用

var test = {
  foo: function () {
    console.log(this);
  }
}

test.foo(); //test對(duì)象

對(duì)象方法調(diào)用中,this指向調(diào)用者。

var test = {
  foo: function () {
    console.log(this);
  }
}

var test2 = test.foo;
test2(); //全局變量

不過由于this的晚綁定特性,在上例的情況中this將指向全局變量,相當(dāng)于直接調(diào)用函數(shù)。

這點(diǎn)非常重要,同樣的代碼段,只有在運(yùn)行時(shí)才能確定this指向

構(gòu)造函數(shù)

function Foo() {
  console.log(this);
}

new Foo(); //新創(chuàng)建的對(duì)象
console.log(foo); 

在構(gòu)造函數(shù)內(nèi)部,this指向新創(chuàng)建的對(duì)象。

顯式設(shè)置this

function foo(a, b) {
  console.log(this);
}

var bar = {};

foo.apply(bar, [1, 2]); //bar
foo.call(1, 2); //Number對(duì)象

使用Function.prototype的call或者apply方法是,函數(shù)內(nèi)部this會(huì)被設(shè)置為傳入的第一個(gè)參數(shù)。

相關(guān)文章

最新評(píng)論