【发布时间】:2012-08-17 18:45:27
【问题描述】:
我有一个模块对象,我想克隆它然后覆盖一个函数。
var Module1 = (function () {
var hello = "hi there!";
return {
sayHello : function () {
console.log(hello);
}
}
})();
var Module2 = (function (old) {
var my = {}, key;
for (key in old) {
if (old.hasOwnProperty(key)) {
my[key] = old[key];
}
}
my.sayHello = function () {
console.log(old.hello + " again");
}
return my;
}(Module1));
有没有办法从子模块访问“私有”变量“hello”?调用Module2.sayHello()(在上面显示的代码上)打印undefined again!。
【问题讨论】:
-
正如
su-所说,您可以使用公共函数返回private变量,如this。希望这会有所帮助。 -
您可以从外部范围访问私有变量吗?不;这就是私有变量的意义:P
标签: javascript design-patterns inheritance module