javascript中的闭包的理解

时间:2022-08-26 10:31:49

//阮一峰例子

function f1() {
var n = 999;
function f2() {
console.log(n);
}
return f2;
}
var result = f1();
result();

result后面的括号,相当于是调用里面的函数f2,可以写成f1()();

ps:return f2其实是return一个function代码出来,再加一个(),就可以执行里面的function

//闭包我的理解

var name = "aaaa";
var person = function(lastname){
var name = 'bbbb';

function personName(){
return name + lastname;
}
return personName;
}
var pName = person();
pName("ccc:");

为了取person中的name:bbbb这个值,
就需要在person函数内部定义另一个函数取这个yang的值,然后在把取得这个值的函数return出来,此时,这个函数中任然获取这这个bbbb
然后再在外部调用这个内部函数即可取得这个bbbb的值