所谓闭包,实质就是将一个函数内部的函数保存到外部,再在外部调用此函数,就是闭包,(此过程需要将内部函数的名称返回给外部函数,如果我们所需要返回的函数在对象内,则返回对象即可);
闭包在我们平时写代码的过程中也可能写过,只是我们并不知道而已,接下来,我举二个
例子,以便更直观的理解闭包函数;
//第一个例子
function closure(){
console.log('xiaopan');
function inner(){
var value = 'dapan';
console.log(value);
}
return inner;//内部函数的名称
}
var test = closure();//此时输出 'xiaopan'
test(); //调用closure函数内部的inner函数,此时输出 'dapan';
//第二个例子
function closure(){
// 对象当中写函数
var obj = {
car:function(myBrand){
brand = myBrand;
console.log(brand);
},
brand:function(){
console.log('This is a car of '+brand);
},
}
return obj;
}
var test = closure();
test.car('BMV');// 输出 'BMV'
test.brand();// 输出 ' This is a car of BMV'