到底是什麼this?(上下文)

2021-10-24 14:25:55 字數 1109 閱讀 5646

假設我們有乙個物件小明,我們要求他三科成績的總和。

var xiaomin=

function sum(o)

var a = sum(xiaomin);

console.log(a); //159

東西很簡單,但是有乙個問題,這裡的函式和物件是乙個什麼關係。不用很複雜。

這裡的物件是作為引數傳入函式的,那麼問題來了。

那麼有沒有其他的方法可以不用引數就可以讓函式從外部獲取到這個資訊?

答案就是常說的 上下文

所以上下文就是使資訊進入函式內部的一種手段

我們就可以修改上面的寫法了

var xiaomin=

function sum()

var a = xiaomin.sum();

console.log(a); //159

這就是將函式繫結在xiaomin的上下文中,通過this這個東西訪問函式的資訊。

所以 this 就是函式的上下文,也是除了傳參之外,最常見的使資訊進入函式內部的手段。

最重要的一句話 function定義的函式,this是什麼。看的是怎麼呼叫,而不是看怎麼定義。

調動方式決定了this。

var xiaomin=

function sum()

var a = xiaomin.sum;

a();

//列印出來的是window。

//所以看到不要著急慢慢分析。

funciton fun1(fn)

function fun2()

fun1(fun2,5,6,7,8) //彈出5

//因為this在呼叫的時候是通過陣列進行呼叫所以this指向的是那個陣列,和他本身入參沒有關係

//本身入參直接arguments物件直接呼叫就可以

function cat()

var b = new cat();

cnosole.log(b); // 返回值就是cat這個物件有乙個 a 屬性 值為2。

到底什麼是上下文無關文法?

在龍書compilers principles,techniques,tools英文版第2版42頁中,提到上下文無關文法有以下的特點 乙個終結符的有限集 a set of terminal symbols 構成文法的最基本的字元就是這個文法的終結符,例如乙個能夠產生個位數的文法規則digit 0 1...

程序上下文是什麼意思

程序上下文是什麼意思 回答者的答案集合 1.程序上下文一般在程序切換中提到,也就是當程序要切換時 關於當前程序的暫存器內容以及記憶體頁表的詳細資訊等等內容,一句話概括也就是關於描述程序的資訊。2.同意樓上的,就是很多書本上提到的程序控制塊pcb,儲存著程序的很多詳細資訊 3.補充 linux完全注釋...

CPU 上下文切換是什麼

linux 是乙個多工作業系統,它支援遠大於 cpu 數量的任務同時執行。當然,這些任務實際上並不是真的在同時執行,而是因為系統在很短的時間內,將 cpu 輪流分配給它們,造成多工同時執行的錯覺 而在每個任務執行前,cpu 都需要知道任務從 載入 又從 開始執行,也就是說,需要系統事先幫它設定好 c...