如果我們要檢測xiaoming
是否擁有某一屬性,可以用in
操作符:
var xiaoming = {
name: '小明', birth: 1990, school: 'No.1 Middle School', height: 1.70, weight: 65, score: null }; 'name' in xiaoming; // true 'grade' in xiaoming; // false
不過要小心,如果in
判斷一個屬性存在,這個屬性不一定是xiaoming
的,它可能是xiaoming
繼承得到的:
'toString' in xiaoming; // true
因為toString
定義在object
對象中,而所有對象最終都會在原型鏈上指向object
,所以xiaoming
也擁有toString
屬性。
要判斷一個屬性是否是xiaoming
自身擁有的,而不是繼承得到的,可以用hasOwnProperty()
方法:
var xiaoming = {
name: '小明' }; xiaoming.hasOwnProperty('name'); // true xiaoming.hasOwnProperty('toString'); // false