javascript中的非静态私有变量
Posted
技术标签:
【中文标题】javascript中的非静态私有变量【英文标题】:Non-static private variables in javascript 【发布时间】:2011-04-12 04:56:24 【问题描述】:我正在设置我的 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 - 我是一名自学成才的程序员,所以我对术语的使用可能有点粗略。让我知道是否需要澄清
【问题讨论】:
应该使用Object2.prototype = Object1()
,还是只是粘贴代码中的拼写错误?
Private variables in inherited prototypes 的可能重复项
【参考方案1】:
Righto,知道我以前做过这样的事情:Private variables in inherited prototypes
;oP
【讨论】:
我知道之前一定有人问过它,但就是找不到要搜索的正确短语。为答案喝彩【参考方案2】:您正在创建一个全局变量。把 var 放在前面。
var privateMember = "private value";
【讨论】:
这是我的问题中的一个错字。即使我使用 var,问题仍然存在【参考方案3】:编辑了我的答案,你能检查一下这是否有效吗?
试试这个 -
Object1 = function()
var privateMember = "private value";
var returnVal =
publicMember: "public value",
setPrivateMember: function(value)
privateMember = value;
;
return returnVal;
();
【讨论】:
以上是关于javascript中的非静态私有变量的主要内容,如果未能解决你的问题,请参考以下文章