在javascript中执行以下操作的最惯用方法是什么:
如果调用者没有将myParam传递给MyFunc,那么我想将其设置为默认值.但首先我想尝试从另一个可能尚不存在的对象中获取它:
function MyFunc(myParam) { if (!myParam) { if (!myObj) { myParam = 10; } else { myParam = myObj.myParam; } } alert(myParam); }
我开始写:
myParam = myParam || myObj.mParam || 10
但意识到如果myObj不存在那么这将失败.我猜可以猜到:
myParam = myParam || (myObj && myObj.mParam) || 10
它甚至可能有效.但这是最好的方式吗?
例如John Resig会怎么做?
如果myObj是全局的,则需要引用window对象,否则如果myObj
未定义则会抛出错误.
myParam = myParam || (window.myObj ? window.myObj.mParam : 10);
要么
myParam = myParam || (window.myObj && window.myObj.mParam) || 10;
这也有效:
myParam = myParam || ((typeof myObj !== "undefined") ? myObj.mParam : 10);