2009-06-04 114 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

相关问题