var cfg = cfg || {};
这个语句是一个赋值或者初始化语句。
该语句在cfg已经被初始化过后cfg的值不变,即执行var cfg= cfg这一部分。
当cfg 未被初始化,即typeof cfg= 'undefined’时,执行后面部分即var cfg= {}来初始化一个对象
也可以这样理解:
调用函数的时候如果 cfg 没指定,就给它赋值 {} , {} 是一个空的 Object。
你可以用以下程序验证:
function test(cfg) {
cfg = cfg || {};
for(var k in cfg ) {
alert(k + ‘=’ + cfg [k]);
}
}
test({a:1, b:2});
test();