您如何向知道其所包含概念的人(例如函数,变量等)解释JavaScript闭包,但不了解闭包本身?
我已经看过维基百科上给出的Scheme示例,但遗憾的是它并没有帮助.
我有以下代码,我不明白为什么我重新声明get方法时无法访问私有属性.
(function(w,d,a,undefined){
var cfg = {
currency: 'GBP',
exponent: 2
};
var get = function () {
return cfg;
};
a.init = function (settings) {
for (var k in settings) {
cfg[k] = settings[k];
}
};
a.set = function (args) {
get = args.get || get;
//eval(args) //works but why??
};
a.get = function () {
return get();
};
})(window,document,window.fxc = {});
fxc.init({currency: 'EUR'});
// prints, Object { currency="EUR", exponent=2}
console.log(fxc.get());
fxc.set({get: function(msg){
// cannot access private properties
return cfg; …
Run Code Online (Sandbox Code Playgroud)