簡體   English   中英

執行上下文在簡單示例中如何顯示

[英]How does the execution context look like in simple example

謝謝你幫我

在上一堂課時,我遇到了以下代碼:

var carlike = function(obj, loc){
    obj.loc = loc;
    obj.move = move;
    return obj;
};

var move = function(){
    this.loc++;
};

var ben = carlike({}, 9);

據我了解,當在其執行上下文的創建階段的最后一行調用carlike函數時,變量move設置為undefined 所以我的問題是:在哪一點move設置等於function() {this.loc++;}; 我發現這令人困惑,因為move函數是在carlike函數之后定義的。 那么,如何carlike訪問后的環境。

我真的很想知道它在執行上下文,范圍等方面如何工作。

我讀過一些東西,試圖理解這一點:

http://dmitrysoshnikov.com/ecmascript/chapter-1-execution-contexts/ http://corporate.tuenti.com/en/dev/blog/functions-and-execution-contexts-in-javascript-2

它之所以可以訪問該move變量,是因為盡管在函數carlike之后聲明了move函數,但是直到聲明了move之后,函數carlike才引用move,因為在move被定義為一個函數之后調用了carlike。 如果在move的定義上方調用carlike,則move將設置為undefined,因為該功能尚不存在。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM