JSクローズド理解
2616 ワード
、 ?
“ ” : ( ), 。
, 。 :JavaScript function 。 , function , “ ”。 :
function a() {
var i = 0;
function b() {
alert(++i);
}
return b;
}
var c = a();
c();
:
b a ;
a b。
var c=a() , c b,b i, c() i ( 1)。 , ? a c a b, :
a b a , “ ”。
。 “ ”, , 。 , 。 , , , 。 , , , 。
, 。
、 ?
, a , Javascript GC a , a b a 。 , , , 。
, a ,a i , c(),i 1 alert i 。
, a b, 。 a ,b a , a , a b , a b ( ), a b GC 。( Javascript )
、
a b , : (excution context)、 (call object)、 (scope)、 (scope chain)。 a 。
a ,js a (scope chain) a a “ ”, a , scope chain window 。
a ,a (excution context)。
, a scope , a , 1 scope chain。 a.scope=a 。
(call object)。 , JavaScript 。 , a 。 a :a window 。
arguments , a 。
a b a 。 , b , 3 , b b , a 。
, a 。 a b c, b a , b a 。 b c , b a, a GC 。
、
。 , a i b , , i 。
。 , , a i , c(), i 1。
JS ( ) :http://javascript.crockford.com/private.html
Constructor
function Constructor(...) {
var that = this;
var membername = value;
function membername(...) {...}
}
3 , 。