Javascript 变量等于A | | B。这是如何工作的?
我遇到了以下代码:Javascript 变量等于A | | B。这是如何工作的?,javascript,Javascript,我遇到了以下代码: function extend(out){ out = out || {}; for (var i = 1; i < arguments.length; i++){ var obj = arguments[i]; if (!obj) continue; for (var key in obj){ if (obj.hasOwnProperty(key))
function extend(out){
out = out || {};
for (var i = 1; i < arguments.length; i++){
var obj = arguments[i];
if (!obj) continue;
for (var key in obj){
if (obj.hasOwnProperty(key))
out[key] = (typeof obj[key] === 'object') ? extend(out[key], obj[key]) : obj[key];
}
}
return out;
}
功能扩展(out){
out=out |{};
for(var i=1;i
这行代码是什么代码>平均值及其工作原理
此函数基本上将不同的对象组合成一个对象。基本上就是这样做的简捷方法
if(!out){
out = {};
}
本质上,如果out的计算结果不是“true”,那么在这种情况下out将被设置为空数组
这里已经回答过:它为
out
设置了一个默认值,即如果函数没有提供out(或者它是一个错误的值,例如false
,0
,null
,未定义的或'
),那么out被分配{/code>
工作原理:
Javascript使用,这意味着or(|
)操作符将返回第一个非伪值。如果out
不是falsy,则不会发生任何变化,如果out是falsy,则将其设置为{}
,这是一种简化形式:
function extend(out){
if (!out) {
out = {};
}
...
}
如果在此行之前未设置变量“out”,则该值将设置为空数组 在Javascript中,|
运算符返回第一个操作数(如果它是真值);否则,它将返回第二个。因此在这里的上下文中,如果out
是一个错误的值(例如未定义的),那么out=out | |{}
将{}
分配给out
;否则,它会将out
的当前值分配到out
,实际上什么也不做
其目的是为out
提供默认值。如果调用方将false
、null
或undefined
作为第一个参数传递,则out
将是一个新对象。如果调用方将一个对象作为第一个参数传递,那么函数将修改该对象。这个问题以前有人问过!你能提供一个链接吗?这正是你的问题!这是一个空对象,不是数组。对不起,你说得对,我整个星期都在C#工作。
out = out || {};