闭包 (Closure)

定义:

a function use a variable outside the scope are closures.

 或者说

"Closures are FUNCTIONS WITH PRESERVED DATA"

console.dir()

Displays an interactive(交互式) list of the properties of the specified JavaScript object. 

syntax:console.dir(object);

var addTo = function(passed) {

       var inner = 2;

       return passed + inner;

};

console.log(addTo(3));

//5

in Javascript:, you can do this without passing variables:

example1:

var passed = 3;

var addTo = function(){

    var inner = 2;

    return passed + inner;

};

console.log(addTo(3));

This is a closure.

JS use lexical scoping. means inner variables is not accessible outside but  anything defined outside is automatically avaliable inside the function.

定义:

a function use a variable outside the scope are closures.

function is also object in  javascript,so in Chrome, console.dir(addTo(3))

 example2:

var addTo = function(passed){

          var add = function(inner){

            return passed + inner;

          };

           return add;

};

console.dir(addTo(3));

var addThree = new addTo(3);

var addFour = new addTo(3);

console.dir(addThree);

console.dir(addFour);

//you can check the closure in Chrome.

console.log(addThree(2))

...

猜你喜欢

转载自www.cnblogs.com/eret9616/p/8994159.html