模块中的JavaScript跨文件私有状态

模块中的JavaScript跨文件私有状态,javascript,module,Javascript,Module,我正在读一篇文章,想知道这段代码是什么意思?特别是这种赋值做了什么 var MODULE = (function (my) { var _private = my._private = my._private || {}, _seal = my._seal = my._seal || function () { delete my._private; delete my._seal; delete m

我正在读一篇文章,想知道这段代码是什么意思?特别是这种赋值做了什么

var MODULE = (function (my) {
    var _private = my._private = my._private || {},
        _seal = my._seal = my._seal || function () {
            delete my._private;
            delete my._seal;
            delete my._unseal;
        },
        _unseal = my._unseal = my._unseal || function () {
            my._private = _private;
            my._seal = _seal;
            my._unseal = _unseal;
        };

    // permanent access to _private, _seal, and _unseal

    return my;
}(MODULE || {}));

你只需要把它分解一下

var _private = my._private = my._private || {}?
你有两部分

第一个是:

my._private = my._private || {}?
是的

如果左侧为真,则
|
运算符解析为左侧,否则解析为右侧

第二个是:

var _private = my._private = something
是的

something
的值被分配给
my.\u private
,然后
my.\u private
的新值被分配给
\u private
,这是一个局部范围的变量,因为