更新:这是对我之前的问题的更新,该问题对于 StackExchange 的目标有点偏离主题。但是我对之前关于这个主题的询问有一个后续问题。
对象模型:
var Soldier;
Soldier = (function() {
"use strict";
function Soldier() {
var privateVar = "privateValue";
this.methodToGetPrivateValue = function() {
return privateVar;
}
}
var sharedPrivateVar = "sharedPrivateValue";
function sharedPrivateMethod() {
// I want to get value `privateVar`
}
Soldier.prototype = {
publicVar: "publicValue",
publicMethod: function() {
return this.publicVar;
},
sharedPrivate: function() {
return sharedPrivateVar;
}
}
return Soldier;
})();
var marine = new Soldier();
所以我更新的问题是使这个主题更合适的问题是,是否有办法以这种方式定义一个 sharedPrivateMethod 以便能够访问上述设置中的私有变量?
我问的原因是 sharedPrivateMethod 对实例对象完全不可见。由于 this.method = function(),实例可以访问 Soldier() 中定义的函数。我不知道它目前是否有任何实际用途,但看看它是否有可能会很有趣。