是否可以从此对象获取私有变量value
而无需修改函数Test
本身?
function Module(){
this.get = function(){
return value;
}
}
function Test(){
Module.call(this);
var value = 14;
}
Test.prototype = Object.create(Module.prototype);
Test.prototype.constructor = Test;
var T = new Test();
T.get();
是否可以以某种方式扩展object / funciton Test
以获取变量value
?
答案 0 :(得分:6)
是否可以从此对象获取私有变量
value
而无需修改函数Test
本身?
没有
另请注意,value
在调用Test
之前甚至不存在,并且每次调用value
时都会创建不同的Test
。在这两种情况下,除非在Test
内显示闭包,否则Test
返回时变量就会消失。
重新提出您的最新问题:答案相同。 value
仅在调用Test
期间存在。它没有保存在任何地方,也没有任何关闭,因此只要Test
返回就会消失。
答案 1 :(得分:0)
document.getElementById('result').innerHTML = Test.toString().replace("function Test(){\n var value = ","").replace(";\n}","");