在一个函数中引用一个对象文字是否有问题?它似乎工作得很好,但我想确保没有其他含义.
这是我正在谈论的一个例子:
代替:
var obj = {
key1: "it",
key2: function(){return this.key1 + " works!"}
};
alert(obj.key2());
Run Code Online (Sandbox Code Playgroud)
使用:
var obj = {
key1: "it",
key2: function(){return obj.key1 + " works!"}
};
alert(obj.key2());
Run Code Online (Sandbox Code Playgroud) 我试图了解(显示)模块模式中public属性的工作方式。卡尔·丹利(Carl Danley)提出的“ 显露模块模式 ”的优点是:
明确定义的公共方法和变量,可提高可读性
让我们看一下这段代码(fiddle):
var a = function() {
var _private = null;
var _public = null;
function init() {
_private = 'private';
_public = 'public';
}
function getPrivate() {
return _private;
}
return {
_public : _public,
init : init,
getPrivate : getPrivate,
}
}();
a.init();
console.log( a._public ); // null
console.log( a.getPrivate() ); // "private"
Run Code Online (Sandbox Code Playgroud)
null调用时返回a._public。我现在可以操纵该公共财产,例如a._public = 'public';。但是我不能从对象内部更改它。或至少这些更改没有通过。我有点期待它"public"是由init-method之前更新的。 …