[英]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.