CoffeeScript将
user?.id
转换为:if (typeof user !== "undefined" && user !== null) {
user.id;
}
是否有可能创建一个名为 exists
的 JavaScript 函数,实现类似的功能?即:
exists(user).id
这将导致user.id
或null
。
如果一个函数接受另一个参数,即exists(user, 'id')
,那么会更容易,但这看起来不太好。
definegetter(o, function(property){...})
),如果我没记错的话,这并不是JavaScript规范的一部分。 - Zetaundefined
而不是失败,这应该已经足够了。 - millimoosefunction exists(obj) { if (obj) return obj; return {}; }
,但它不能处理未定义的变量。JavaScript 不支持这种语法扩展。 - millimooseuser
未定义(与值undefined
不同),这将导致不同的行为。你可以只是声明类似于var user;
这样的东西,然后它就没问题了,但这会创建相当多的混乱。 - Qantas 94 Heavy