2009-06-04 32 views

回答

3

變量的範圍和它們綁定的環境。

而如何辛苦,他們是在一個編譯器 :)

ClosureA可以綁定到它來實現本地範圍LA和家長範圍PA,然後調用ClosureB內封閉勢必(潛在) LB,LA,PA

func a(v1,v2,v3){ 
    closure_b(bv1, bv2, bv3) { # Closure 
     b_local1 = bv1 
     b_local2 = v1 # parent scope 

     closure_c(cv1, cv2) { # Nested closure has 'closure_b's scope too 
      c_local1 = cv1 
      c_local2 = bv1 # direct-parent scope 
      c_local3 = v1 # parent's parent scope (nesting) 
      c_local4 = b_local2 
     } 
     return closure_c; 

    } 
    return closure_b(); # closure_b() returns closure_c 
} 
+0

我跟隨在你的代碼一切,直到return語句。我不認爲closure_c可以在closure_b之外訪問。你能否解釋一下如何從func的範圍返回closure_c?或者這個例子中的return語句是不正確的? – adamjcooper 2009-06-30 15:50:33

相關問題