關于js 中 this關鍵字的小結

function函數(shù)調用中經(jīng)常用到this ,

但是this具體是指的什么 ,它的作用范圍還是不太清楚

今天在慕課聽nodejs 課程的時候老師講了一下 不同函數(shù)中this的所指

下面直接上代碼

1.作為對象方法的調用

這時this就指這個上級對象。

?var pet = {

? ?words:'...',

? ?speak:function(){

? ? ? console.log(this.words)

? ? ? ?console.log(this ===pet)

? ? ?}

?}

?pet.speak();

node 在終端運行的時候打印出

//...

//true

說明此時的this 指的是調用的函數(shù)對象,該函數(shù)對象是speak函數(shù)所在的pet

2.this指向全局對象

這是函數(shù)的最通常用法,屬于全局性調用,因此this就代表全局對象Global。

?function pet(words){

? ?this.words = words

? ?console.log(this.words)

? ? console.log(this===global)

?}

pet('...');

//...

//true

var x=1;

function text(){

? ? ?alert(this.x)

}

text();//1

.........................................

var ?x=1;

function test(){

? ?this.x =0;

}

test();

alert(x);


3.作為構造函數(shù)調用

所謂構造函數(shù),就是通過這個函數(shù)生成一個新對象(object)。這時,this就指這個新對象。

function Pet(words){

? ? ?this.words=words

? ? ?this.speak=function(){

? ? ? ? ? console.log(this.words)

? ? ? ? ? console.log(this)

? ? ?}

?}

var cat = new Pet('miao')

cat.speak();

//miao

// Pet{word:'miao',speak:[function]}

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • 工廠模式類似于現(xiàn)實生活中的工廠可以產(chǎn)生大量相似的商品,去做同樣的事情,實現(xiàn)同樣的效果;這時候需要使用工廠模式。簡單...
    舟漁行舟閱讀 8,117評論 2 17
  • 沒搞錯吧!js寫了那么多年,this還是會搞錯!沒搞錯,javascript就是回搞錯! ………… 在寫java的...
    zhoulujun閱讀 1,497評論 0 11
  • 單例模式 適用場景:可能會在場景中使用到對象,但只有一個實例,加載時并不主動創(chuàng)建,需要時才創(chuàng)建 最常見的單例模式,...
    Obeing閱讀 2,313評論 1 10
  • 1. this之謎 在JavaScript中,this是當前執(zhí)行函數(shù)的上下文。因為JavaScript有4種不同的...
    百里少龍閱讀 1,093評論 0 3
  • 與其他語言相比,函數(shù)的this關鍵字在JavaScript中的表現(xiàn)略有不同,此外,在嚴格模式和非嚴格模式之間也會有...
    codingC閱讀 637評論 0 0

友情鏈接更多精彩內(nèi)容