每次调用getFunction都会返回一个唯一的函数,对吗?
var getFunction = function() {
var myFunction = function() {
};
return myFunction;
}
var function1 = getFunction();
var function2 = getFunction();
function1 === function2; // false
答案 0 :(得分:3)
是的,每次调用一个函数时,都会为该运行创建一个新的作用域,并且其中定义的所有变量都是唯一的,并且不会在函数的运行之间共享。
即使执行类似下面的操作也会产生相同的结果,因为内部函数仍然在函数范围内定义,并且可以看到外部函数的参数。
var getFunction = function() {
function myFunction() {
};
return myFunction;
}
var function1 = getFunction();
var function2 = getFunction();
function1 === function2; // false
答案 1 :(得分:1)