如果我将代码复制到这样的闭包中
(function(){
var private1 = {},
private2 = {},
publik;
publik.get(object){
private1[object.name] = object;
};
window.publik = publik;
}())
publik.get({
// API
name: 'name_foo',
functionA: function(){
// I can not access private2 in here
},
functionB: function(){}
})
有没有一种 API 可以工作的方法,以便 functionA 和 functionB 可以访问闭包内的 private 2。
它们将被复制到闭包中,因此复制的版本应该可以访问它。这就是为什么我进行关闭并将 private1 和 private2 像这样放在一起的原因。
对象的书面版本(不是复制版本)在 jslint 中引发错误,我猜这是因为它违反了范围规则。
函数参数(不是参数)是全局范围内的未命名变量,无法访问闭包。
(直到被复制到其中:)
如果我做了private1
并且private 2
同一个对象说......只是private
......然后使用this
关键字访问它,它会起作用吗?
不过,我更愿意将它们分开。