javascript中的非静态私有变量

javascript中的非静态私有变量,javascript,object,static,private,Javascript,Object,Static,Private,我正在设置javascript对象,如下所示 Object1 = function() { var privateMember = "private value" return { publicMember: "public value" setPrivateMember: function(value) { privateMember = value; } } }(); 现在如果我使用原型继承来创建新对象 Object2.prototype

我正在设置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-我是自学成才的程序员,所以我对术语的使用可能有点粗略。如果需要澄清,请告诉我您正在创建一个全局变量。把var放在前面

var privateMember = "private value";

编辑了我的答案,你能检查一下这是否有效吗

试试这个-

Object1 = function() {  
  var privateMember = "private value"; 

  var returnVal =  {  
                publicMember: "public value",  
                setPrivateMember: function(value) {  
                privateMember = value;  
                }

           }; 
  return returnVal; 
}(); 

好吧,我知道我以前做过类似的事情:


);oP

这是我问题中的一个输入错误。即使在使用varShould时,问题仍然会发生。我应该使用
Object2.prototype=Object1()
,或者这只是粘贴的代码中的一个输入错误?可能是重复的,我知道以前必须询问过它,但就是找不到要搜索的正确短语。为答案干杯