我知道dojo有这个功能,但jquery或任何其他库怎么样?
$.ifObject(foo.bar.baz.qux[0])
if (foo && foo.bar && foo.bar.baz && foo.bar.baz.qux[0])
假设对象嵌套的任意大小,我正在寻找一个糖函数,它将检查我正在查找的对象是否已定义,并且不会使服务器崩溃。
答案 0 :(得分:1)
最简单的方法是将变量引用括在try-catch
块中:
try {
var val = foo.bar.baz.qux[0];
// succeeded: use val
} catch (ex) {
// failed: do something else
}
答案 1 :(得分:1)
如果你想深入了解咖啡脚本,它在?
运算符中有一个很棒的功能。
if foo?.bar?.baz?.qux?[0]
alert 'yay!'
编译到这个令人讨厌但非常有效的javascript
var _ref, _ref2, _ref3;
if (typeof foo !== "undefined" && foo !== null ? (_ref = foo.bar) != null ? (_ref2 = _ref.baz) != null ? (_ref3 = _ref2.qux) != null ? _ref3[0] : void 0 : void 0 : void 0 : void 0) {
alert('yay!');
}