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