說我有下面的代碼: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