模块中的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
,这是一个局部范围的变量,因为