js 執行上下文,this指向

2022-07-03 01:48:12 字數 554 閱讀 9075

執行上下文的建立過程

執行**之前,進入建立上下文階段:

初始化作用域鏈;

建立變數物件:

1.建立argumens物件,初始化引數名稱和值並建立引用的複製;

2.掃瞄上下文的函式宣告(而非函式表示式):

為發現的每乙個函式,在變數物件上建立乙個屬性,屬性名就是函式的名字,儲存乙個函式在堆記憶體中的引用;

如果該屬性名已經存在,引用指標將被重寫。

3.掃瞄上下文的變數宣告: 為發現的每乙個變數宣告,在變數物件上建立乙個屬性,屬性名就是變數的名字,並將變數的值初始化為undefined; 如果該屬性名已經存在,將不會進行任何操作並繼續掃瞄。 計算上下文內部this的值。

this用法總結

全域性環境下的 this 指向全域性本身;

獨立呼叫的函式中的 this 指向 undefined;

函式呼叫時如果被某乙個物件所擁有,那麼函式內部的 this 指向該物件;

建構函式和原型方法上的 this 指向使用 new 方法返回的例項物件;

箭頭函式中 this 的繫結取決於外層作用域(全域性或函式)。

js執行上下文 this指向的理解

this 是很多人會混淆的概念,但是其實它一點都不難,只是網上很多文章把簡單的東西說複雜了。在這一小節中,你一定會徹底明白 this 這個概念的。this的指向在函式定義的時候是確定不了的,只有函式執行的時候才能確定this到底指向誰,實際上this的最終指向的是那個呼叫它的物件 這句話有些問題,後...

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

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

JS執行上下文

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