以下代码:
a = function(b) {
return alfa() + b;
function alfa() {
return 7;
}
}
console.log(a(4));
console.log(a(5));
函数 alfa() 是否在每次调用 a() 时创建?
最佳答案
是的。
您使用的语法是糖:
a = function(b) {
var alfa = function() {
return 7;
}
return alfa() + b;
}
console.log(a(4));
console.log(a(5));
它使您在每次执行
alfa
时创建和分配 a
变得更加清晰。你也可以用这个简单的改变来测试它:
a = function(b) {
return alfa; // let's return the function
function alfa() {
return 7;
}
}
console.log(a(4)==a(4)); // logs false
如果你想避免每次都创建
alfa
,你可以这样做:a = (function(){
var alfa = function() {
return 7;
}
return function(b) {
return alfa() + b;
}
})();