我正在设置我的javascript对象,如下所示
Object1 = function() {
var privateMember = "private value"
return {
publicMember: "public value"
setPrivateMember: function(value) {
privateMember = value;
}
}
}();
现在,如果我使用原型继承来创建新对象
Object2.prototype = Object1
然后设置私有成员
Object2.setPrivateMember("new value");
然后,对象1中私有成员的值也会发生变化,因此它的行为更像是静态变量。有没有办法让私有变量不是静态的?
PS - 我是一名自学成才的程序员,因此我对术语的使用可能有点粗略。如果需要澄清,请告诉我答案 0 :(得分:3)
对了,知道我之前发过这样的事情:
Private variables in inherited prototypes
;业务
答案 1 :(得分:2)
您正在创建一个全局变量。把var放在它之前。
var privateMember = "private value";
答案 2 :(得分:2)
编辑我的回答,你能检查一下是否有效吗?
试试这个 -
Object1 = function() {
var privateMember = "private value";
var returnVal = {
publicMember: "public value",
setPrivateMember: function(value) {
privateMember = value;
}
};
return returnVal;
}();