【发布时间】:2010-10-28 03:12:59
【问题描述】:
我有一个使用 new 创建的自定义 Javascript 对象,并根据创建参数分配属性:
function MyObject(argument) {
if (argument) {
this.prop = "foo";
}
}
var objWithProp = new MyObject(true); // objWithProp.prop exists
var objWithoutProp = new MyObject(false); // objWithoutProp.prop does not exist
测试对象的prop 属性是否存在的正确方法是什么?我见过使用以下方法,但我不确定这些方法是否是最好的方法:
if (obj.prop) {}if (obj.hasOwnProperty("prop")) {}if ("prop" in obj) {}
具体来说,我只对测试是否为该对象明确定义了属性感兴趣,而不是在原型链中。此外,该值永远不会设置为null 或undefined,但它可能是一个空对象或数组。但是,如果您想在可能的情况下包括正确的方法是什么,请随意。
【问题讨论】:
标签: javascript object properties