参考Javascript:好的部分,试图建立一种类原型对象,然后我可以用它来创建实例。但使用建议通过闭包创建对象和信息隐藏的模式,我发现我创建了一个私有静态成员而不是私有实例成员。Javascript私人实例变量?
在这种情况下,我试图创建一个“帐户”对象,其具有由所述平衡()方法返回一个专用值(平衡量)变量:
<head>
<script>
if (typeof Object.create !== 'function') {
Object.create = function (o) {
var F = function() {
};
F.prototype = o;
return new F;
};
};
var account = function() {
var value = 0;
return {
"account_name": "",
deposit: function (amount) {
value = value + amount;
},
withdrawal: function (amount) {
value = value - amount;
},
balance: function() {
return value;
}
}
}();
</script>
</head>
<body>
<script>
var account1 = Object.create(account);
var account2 = Object.create(account);
account1.account_name = "Mario Incandenza";
account1.deposit(100);
account1.withdrawal(25);
account2.account_name = "Hal Incandenza";
account2.deposit(5100);
account2.withdrawal(2000);
document.writeln("<p>Account name = " + account1.account_name + " Balance: " + account1.balance() + "</p>");
document.writeln("<p>Account name = " + account2.account_name + " Balance: " + account2.balance() + "</p>");
</script>
</body>
下面是结果:
帐户名=马里奥Incandenza余额:3175
帐户名=哈尔Incandenza余额:3175
所以看到所有的取款和存款这两个帐户的明显的和我已经创建了一个静态的“阶级”(在javaspeak)
可变因此,如何在实例级别创建VAR值,并保持它隐藏/私有?
JavaJavaScript之前已经做过的HTTPS ://www.gnu.org/software/easejs/,不值得它海事组织,更好的做JavaScript。 – elclanrs
删除函数末尾的调用'()',并分别调用它们 – webdeb
http://jsfiddle.net/jul101/tcyztz68/这是你想要的吗? –