测试CoffeeScript中是否存在属性

测试CoffeeScript中是否存在属性,coffeescript,Coffeescript,在JavaScript中,我们可以使用以下命令测试对象中是否存在命名属性: var obj={foo:123,bar:0}; obj中的“foo;”/=>真的 obj中的“bar;”/=>正确,方便,因为“obj.bar”是错误的。 “gah”在obj中;//=>假的 但是,在CoffeeScript中,中的操作符被重载以执行数组搜索(可能是为了防止对中的…误用),因此我们不能像上面那样使用它。相反,我们似乎必须在对象的键列表中对命名属性进行线性搜索: obj={foo:123,bar:0}

在JavaScript中,我们可以使用以下命令测试对象中是否存在命名属性:

var obj={foo:123,bar:0};
obj中的“foo;”/=>真的
obj中的“bar;”/=>正确,方便,因为“obj.bar”是错误的。
“gah”在obj中;//=>假的
但是,在CoffeeScript中,中的
操作符被重载以执行数组搜索(可能是为了防止
中的…误用),因此我们不能像上面那样使用它。相反,我们似乎必须在对象的键列表中对命名属性进行线性搜索:

obj={foo:123,bar:0}
Object.keys(obj)中的'foo'#true,但O(n)搜索而不是可能的O(1)。
是否有更好(更高效、更简洁)的方法来测试CoffeeScript中对象中是否存在命名属性?使用:

obj ={foo:13}

(foo of obj) == true