JavaScript - 判断属性是否已定义并设置为'undefined'或undefined
- 论坛
- JavaScript - 判断属性是否已定义并设置为'undefined'或undefined
15 浏览
JavaScript - 判断属性是否已定义并设置为'undefined'或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
? - 是否有任何理由这样做?(两者在语义上应该是等价的吗?)
小小的注意事项:在o上执行(for propName in o)循环将返回字符串'x',而在t上执行将不会返回 - 所以它们在内部表示上是有差异的(至少在Chrome中)。