为什么这不起作用?
(function () {
var cache = ['hii'];
return function add (fn) {
if (!cache.contains(fn)) {
cache.push(fn);
return true;
}
return false;
};
}());
add('dd');
我收到一条错误消息:Uncaught referenceError: add is not defined.
最佳答案
外部匿名函数返回内部 add
函数,但返回值未分配给任何东西,因此您无法访问它。
(请注意,为 add
命名并不意味着它可以通过该名称使用;因为它是 return
语句的一部分,所以它变成了 function expression令人困惑的是,它与函数声明具有相同的语法,但不会导致创建指向该函数的变量。)
尝试将第一行更改为如下所示:
add = (function () {
关于javascript - 函数表达式中的私有(private)变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23840488/