在JavaScript中,可以用四種方法來檢查某個物件o是否擁有property x:
1.「x」 in o。 in運算子可用來檢查物件o中是否有x這個property。 x可以是物件本身的(Own Property),也可以是從原型物件繼承而來的;x可以是enumerable的property,也可以是非enumerable的property。
2.o.x。可以透過存取o.x語句,判斷其結果是否為undefined來確認x是否存在,其作用範圍與in操作符相同。與in操作符不同的是:如果在物件o中明確聲明某個property x的值為undefined,那麼”x” in o操作結果將為true,而o.x結果則為undefined。
3.hasOwnProperty()。 o.hasOwnProperty(“x”)操作用來判斷o物件本身是否擁有x property,o從原型物件繼承而來的property將不在考慮之列。 hasOwnProperty()操作既檢查enumerable的property,也檢查非enumerable的property。
4.propertyIsEnumerable()。 o.propertyIsEnumerable(“x”)操作只檢查o物件本身擁有的enumerable property,該操作是hasOwnProperty()的子集。
綜合上述訊息,總結成圖如下: