【发布时间】:2010-07-27 22:23:00
【问题描述】:
所以我一直在研究完整的面向对象的 JavaScript 开发实践,并想知道以下示例。
据我了解,(这对我来说很有意义)以下“秘密”字段是“私有”:
var MyObject = function() {
var secret = 'sshhh';
this.getSecret() = function() {
return secret;
}
}
这是因为字段 secret 具有内部函数可以访问的函数范围,但外部没有任何内容......到目前为止还不错。
但我已经看到了以下内容(尤其是在 Douglas Crockford 的书中):
var MyObject = function() {
var secret = 'sshhh';
return {
getSecret : function() {
return secret;
}
}
}();
想知道有什么区别,为什么更好?我知道在这种情况下,我们甚至没有返回存在私有字段的同一个对象,但看不到巨大的好处,因为您无法直接访问该字段。
【问题讨论】:
-
我唯一能想到的就是避免删除和覆盖/覆盖场景?
-
JavaScript: The Good Parts - 好吧,我几乎无法开始阅读这本书,因为我多次翻阅几页时感到困惑......
-
是的,请告诉我:S - 很好,但绝对是你的想法!
-
不要使用引号 (
>) 格式化代码,而是使用 4 个空格缩进(使用编辑器窗格中的code按钮,而不是quote按钮) . -
抱歉,以后会做的
标签: javascript