gpt4 book ai didi

javascript - 这两行是什么意思 : o[x] = o[x] || {}; o = o[x];

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:52:55 27 4
gpt4 key购买 nike

这是我得到的代码,但我不知道这两行是什么意思:

o[arr[i]] = o[arr[i]] || {};
o = o[arr[i]];

完整代码:

var GLOBAL={};
GLOBAL.namespace=function(str){
var arr = str.split("."), o=GLOBAL;

for(i=(arr[0]=="GLOBAL") ? 1 : 0; i<arr.length; i++){
o[arr[i]] = o[arr[i]] || {};
o = o[arr[i]];
}
};

GLOBAL.namespace("A.Dog");
// GLOBAL.A = {};
// GLOBAL.A.Dog = {};
GLOBAL.A.Dog.name = "diudiu";
alert(GLOBAL.A.Dog.name)

最佳答案

逐步分解以使其更清晰:

o[arr[i]] = o[arr[i]] || {};

等同于:

var x = arr[i];
o[x] = o[x] || {};

等同于:

var x = arr[i];
if (o[x] == undefined) {
o[x] = {};
}

模式A = B || DEFAULT_VALUE 是一个习惯用法,它使用了 || 运算符的短路特性。在 javascript 中,|| 运算符不返回 truefalse 而是返回第一个非假值或 false。因此,如果第一个变量不是假的,它会计算出第一个变量的值,否则它会计算出第二个变量的值。

关于javascript - 这两行是什么意思 : o[x] = o[x] || {}; o = o[x];,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8409573/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com