JavaScript - 判断属性是否已定义并设置为'undefined'或undefined

15 浏览
0 Comments

JavaScript - 判断属性是否已定义并设置为'undefined'或undefined

假设我有以下代码:

function One() {}
One.prototype.x = undefined;
function Two() {}
var o = new One();
var t = new Two();

o.xt.x都将返回undefinedo.hasOwnProperty('x')t.hasOwnProperty('x')都将返回false;propertyIsEnumerable也是如此。两个问题:

  • 有没有办法知道o.x被定义并设置为undefined
  • 是否有任何理由这样做?(两者在语义上应该是等价的吗?)

小小的注意事项:在o上执行(for propName in o)循环将返回字符串'x',而在t上执行将不会返回 - 所以它们在内部表示上是有差异的(至少在Chrome中)。

0