开发者

Non-static private variables in javascript

I'm setting up my javascript objects like the following

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

  return {
    publicMember: "public value"
    setPrivateMember: function(value) {
       privateMember = value;
    }
  }
}();

Now if I use prototypal inheritance to create new objects

Object2.prototype = Object1

And then set the private memb开发者_如何转开发er

Object2.setPrivateMember("new value");

Then the value of private member in Object 1 changes too, so it behaves more like a static variable. Is there a way I can get private variables to not be static?

PS - I'm a self-taught programmer so my use of terminology might be a bit sketchy. Let me know if it needs clarifying


Righto, knew I awnsered something like this before:
Private variables in inherited prototypes

;oP


You're creating a global variable. Put var before it.

var privateMember = "private value";


Edited my answer, can you check if this works?

Try this -

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

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

           }; 
  return returnVal; 
}(); 
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜