说我有下面的代码:JavaScript的 - 确定物业是否被定义并设置为“未定义”,或undefined
function One() {}
One.prototype.x = undefined;
function Two() {}
var o = new One();
var t = new Two();
o.x
和t.x
都将计算为undefined
。 o.hasOwnProperty('x')
和t.hasOwnProperty('x')
都会返回false; propertyIsEnumerable
也是如此。两个问题:
- 有没有什么办法可以告诉o.x被定义并设置为
undefined
? - 是否有任何理由? (这两个语义上是否应该相同?)
一个小的警告:do他们在内部表现方式的差异(至少在Chrome中)。
“contains”,会发生什么?那不是ECMAScript。即使是这样,你的解决方案就是减速并使用比需要更多的资源。像在其他答案中说的那样使用“x in y”。 – some 2008-12-22 16:07:22
我知道,我忘了ECMAScript有一个'in'运算符= P。 – Claudiu 2008-12-22 19:41:04