【发布时间】:2015-09-19 10:15:20
【问题描述】:
function emergency() {
var ambulance = 100;
var callAmbulance = function() { alert(ambulance); }
ambulance++;
return callAmbulance;
}
var accident = emergency();
accident(); // alerts 101
我指的是变量'ambulance'。
当我调用 accident(); 时,它应该调用 emergency(),它应该使用声明的变量 'ambulance' [考虑到 javascript 中的全局范围,它仍然可以将值设置为全局],但它使用旧值 101 而不是再次设置回 100 - 表现得更像 static var。
解释是什么?
【问题讨论】:
-
为什么要使用旧值?此外,调用
accident不会调用emergency。 -
预期输出是什么?
-
期望 100 作为输出。
-
emergency将返回callAmbulance。callAmublance返回ambulance的值。你++'dambulance,所以值为101。 -
是什么让你认为
accident();应该调用emergency()?
标签: javascript function static