js的上下文

2021-08-22 03:21:43 字數 887 閱讀 8871

1,指向函式擁有者

2,只能在函式內部使用

1,物件宣告(this指向物件)

var pet = 

}pet.speak()

執行結果

...

true

2,函式宣告(this指向global(或window))
function

pet(words)

pet('...')

執行結果

...

true

3,建構函式宣告(this指向新宣告的物件)
function

pet(words)

}var cat = new pet('miao')

cat.speak()

執行結果

miao

pet

1,半替換
var pet = 

}// pet.speak('speak')

var dog =

pet.speak.call(dog, 'speak')

//call把this由pet指向了dog,所以

//執行結果

//speak wang

2,全替換
function

pet(words)

}function

dog(words)

var dog = new dog('wang')

dog.speak()

//this由pet指向dog,相當於建構函式整個繼承。

//執行結果

//wang

上下文 上下文棧

全域性 函式 區域性 在執行全域性 前將window確定為全域性執行上下文 對全域性資料進行預處理 var定義的全域性變數 undefined,新增為window的屬性 function宣告的全域性函式 賦值 fun 新增為window的方法 this 賦值 window 開始執行全域性 在呼叫函式...

JS執行上下文

執行上下文,即context,也不知道是誰翻譯的,不少的文獻 書籍用的都是這個詞。還記得第一次接觸這個詞時的惆悵 迷惘 不知所措,扶了扶眼鏡,翻開大辭典,還是翻譯成環境比較接地氣。js執行上下文,即js的執行環境。當我們的 執行時,會進入到不同的執行上下文,即不同的環境。在不同的環境中,有著不同的 ...

js執行上下文與執行上下文棧

在了解js的執行上下文物件與執行上下文棧之前,我們要先了解兩個概念 即變數提公升跟函式提公升 變數提公升 通過var定義的變數,在定義語句之前我們就可以直接訪問到,不過它的值是undefined 函式提公升 通過function定義的函式,在函式定義語句前,我們就可以直接呼叫 變數提公升與函式提公升...