相关疑难解决方法(0)

Javascript:在自己的键的函数中的对象文字引用而不是'this'

在一个函数中引用一个对象文字是否有问题?它似乎工作得很好,但我想确保没有其他含义.

这是我正在谈论的一个例子:

代替:

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)

javascript object

15
推荐指数
1
解决办法
3185
查看次数

(显示)模块模式,公共变量和返回语句

我试图了解(显示)模块模式中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之前更新的。 …

javascript module-pattern revealing-module-pattern

3
推荐指数
2
解决办法
3093
查看次数