在CoffeeScript中,检查对象中是否存在密钥的最简单方法是什么?
答案 0 :(得分:181)
key of obj
这将编译为JavaScript的key in obj
。 (CoffeeScript在引用键时使用of
,在引用数组值时使用in
:val in arr
将测试val
是否在arr
中。)
null
或undefined
值的密钥,Jimmy的答案是正确的。
答案 1 :(得分:34)
'?'操作员检查存在:
if obj?
# object is not undefined or null
if obj.key?
# obj.key is not undefined or null
# call function if it exists
obj.funcKey?()
# chain existence checks, returns undefined if failure at any level
grandChildVal = obj.key?.childKey?.grandChildKey
# chain existence checks with function, returns undefined if failure at any level
grandChildVal = obj.key?.childKey?().grandChildKey
答案 2 :(得分:20)
obj.hasOwnProperty(name)
(忽略继承的属性)