国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

(JavaScript) this的用法

vpants / 1563人閱讀

摘要:一全局范圍全局范圍中的將會(huì)指向全局對(duì)象,即。三作為對(duì)象的方法調(diào)用指向?qū)ο螅串?dāng)前對(duì)象。四作為構(gòu)造函數(shù)函數(shù)內(nèi)部的指向創(chuàng)建的對(duì)象。八一個(gè)常見的坑事件綁定中回調(diào)函數(shù)的。如果中有使用,指向,即使的形式是,其中的依然指向,可用的方法解決這個(gè)問題。

一、全局范圍
this // window

全局范圍中的this將會(huì)指向全局對(duì)象,即window。

二、普通函數(shù)調(diào)用
function foo(x) {
  this.x = x;
}
foo(3);
(x /* or this.x */); // 3

this指向全局對(duì)象,即window。嚴(yán)格模式時(shí),為undefined。

三、作為對(duì)象的方法調(diào)用
var name = "foo";  
var person = {  
  name : "bar",  
  hello : function(sth){  
    console.log(this.name + " says " + sth);  
    }  
}  
person.hello("hello"); // bar says hello

this指向person對(duì)象,即當(dāng)前對(duì)象。

四、作為構(gòu)造函數(shù)
var foo = new Bar(name) {
  this.name = name;
  this.age = 28;
}

函數(shù)內(nèi)部的this指向創(chuàng)建的對(duì)象。

五、閉包(內(nèi)部函數(shù))
var name = "foo";  
var person = {  
  name : "bar",  
  hello : function(sth){  
    var sayhello = function(sth) {
      console.log(this.name + " says " + sth);
    };
    sayhello(sth)  
  }  
}  
person.hello("hello"); // foo says hello

this.namefoo,所以this指向全局變量,即window。所以,一般將this作為變量保存下來。代碼如下:

var name = "foo";  
var person = {  
  name : "bar",  
  hello : function(sth){  
    var self = this;
    var sayhello = function(sth) {
      console.log(self.name + " says " + sth);
    };
    sayhello(sth)  
  }  
}  
person.hello("hello"); // bar says hello
六、使用call與apply設(shè)置this
fun.apply(thisArg, [argsArray])
fun.call(thisArg[, arg1[, arg2[, ...]]])

函數(shù)綁定到thisArg這個(gè)對(duì)象上使用,this就指向thisArg。

七、總結(jié)

當(dāng)函數(shù)作為對(duì)象的方法調(diào)用時(shí),this指向該對(duì)象。

當(dāng)函數(shù)作為淡出函數(shù)調(diào)用時(shí),this指向全局對(duì)象(嚴(yán)格模式時(shí),為undefined)。

構(gòu)造函數(shù)中的this指向新創(chuàng)建的對(duì)象。

嵌套函數(shù)中的this不會(huì)繼承上層函數(shù)的this,如果需要,可以用一個(gè)變量保存上層函數(shù)的this

一句話總結(jié):如果在函數(shù)中使用了this,只有在該函數(shù)直接被某對(duì)象調(diào)用時(shí),該this才指向該對(duì)象。

八、一個(gè)常見的坑

事件綁定中回調(diào)函數(shù)的this。

addEventListener(elem, func, false);

如果func中有使用thisthis指向elem,即使func的形式是obj.func,其中的this依然指向elem,可用var self = this;的方法解決這個(gè)問題。

參考:談?wù)凧avascript的this指針 (作者:Aaron)

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/79497.html

相關(guān)文章

  • 快速理解JavaScriptthis用法與陷阱

    摘要:赫敏第三行的是在最外層執(zhí)行,也就是在全局對(duì)象下。而在對(duì)象下聲明了屬性,就相當(dāng)于羅恩,輸出的當(dāng)然就是羅恩。之所以寫這篇文章,是為了我下一篇文章做鋪墊快速理解中和的用法敬請(qǐng)期待 this是 JS 這門語言的魅力之一——靈活方便又難以捉摸,即使是有經(jīng)驗(yàn)的程序員,如果不仔細(xì)也有可能搞錯(cuò),關(guān)于this的用法也成為許多公司的經(jīng)典面試題。 如果你寫過 Java ,你可能接觸過this——一般指向當(dāng)前...

    Kylin_Mountain 評(píng)論0 收藏0
  • 關(guān)于javascriptbind、call、apply等函數(shù)用法

    摘要:其實(shí)它們都很簡(jiǎn)單,但是在處理一些與相關(guān)的函數(shù)的時(shí)候,用來改變函數(shù)中的指向,卻是必不可少的工具,所以必須掌握好它們的用法。 關(guān)于javascript中的bind、call、apply等函數(shù)的用法 我GitHub上的菜鳥倉(cāng)庫(kù)地址: 點(diǎn)擊跳轉(zhuǎn)查看其他相關(guān)文章 文章在我的博客上的地址: 點(diǎn)擊跳轉(zhuǎn) ? ? ? ? 前面的文章已經(jīng)說到this的指向了,那么這篇文章就要說一說和this相關(guān)的三個(gè)...

    lordharrd 評(píng)論0 收藏0
  • JavaScript 函數(shù)作用域、執(zhí)行環(huán)境(this)、call、apply、bind 用法

    摘要:什么是函數(shù)的作用域函數(shù)作用域在中,作用域?yàn)榭稍L問變量,對(duì)象,函數(shù)的集合。函數(shù)作用域作用域在函數(shù)內(nèi)修改。與函數(shù)又有什么關(guān)系呢對(duì)象是在運(yùn)行時(shí)基于函數(shù)的執(zhí)行環(huán)境綁定的。 什么是函數(shù)的作用域 函數(shù)作用域:在 JavaScript 中,作用域?yàn)榭稍L問變量,對(duì)象,函數(shù)的集合。JavaScript 函數(shù)作用域: 作用域在函數(shù)內(nèi)修改。 this 與函數(shù)又有什么關(guān)系呢? this對(duì)象是在運(yùn)行時(shí)基于函數(shù)的...

    1fe1se 評(píng)論0 收藏0
  • JavaScript prototype原型用法

    摘要:使用原型屬性屬性允許您向?qū)ο髽?gòu)造函數(shù)添加新屬性屬性還允許您向?qū)ο髽?gòu)造函數(shù)添加新方法更好的原型對(duì)象的教程 JavaScript對(duì)象原型所有JavaScript對(duì)象都從原型繼承屬性和方法。 js JavaScript 對(duì)象 function Person(first, last, age, eye) { this.firstName = fi...

    siberiawolf 評(píng)論0 收藏0
  • Javascriptthis用法

    摘要:不過,匿名函數(shù)的執(zhí)行環(huán)境具有全局性,因此其通常指向??尚性蚴沁@里的賦值實(shí)際上把匿名函數(shù)當(dāng)作表達(dá)式處理了,表達(dá)式后面可以加括號(hào)。 this是Javascript語言的一個(gè)關(guān)鍵字。它代表函數(shù)運(yùn)行時(shí),自動(dòng)生成的一個(gè)內(nèi)部對(duì)象,只能在函數(shù)內(nèi)部使用。比如,  function test(){    this.x = 1;  }隨著函數(shù)使用場(chǎng)合的不同,this的值會(huì)發(fā)生變化。有一個(gè)總的原則,那就是...

    ad6623 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<