1. 程式人生 > 其它 >JS高階——判斷物件是否有某屬性in,判斷物件是否有自己的某屬性hasOwnPorperty

JS高階——判斷物件是否有某屬性in,判斷物件是否有自己的某屬性hasOwnPorperty

技術標籤:javascriptjs

為了驗證,在建構函式中新增屬性,在原型中新增屬性,給例項化物件新增屬性

// 建立建構函式
function Person() {
    // 新增屬性到建構函式中
    this.job = "班長";
}
// 新增屬性到原型中
Person.prototype.name = "張三";
// 例項化物件p1
var p1 = new Person();
// 新增屬性到例項化物件中
p1.school = "實驗小學";

判斷例項化物件p1是否含有某屬性,使用 in 操作符。有,返回true;沒有,返回false。

// 在建構函式中新增的屬性
console.log("job" in p1); // true

// 在原型中新增的屬性
console.log("name" in p1); // true

// 給例項化物件新增的屬性
console.log("school" in p1); // true

// 沒有的屬性,返回false
console.log("age" in p1); // false

判斷例項化物件p1是否擁有自己的屬性,使用hasOwnPorperty() 方法。有,返回true;沒有,返回false。

// 在建構函式中新增的屬性
console.log(p1.hasOwnProperty("job")); // true // 給例項化物件新增的屬性 console.log(p1.hasOwnProperty("school")); //true // 在原型中新增的屬性 console.log(p1.hasOwnProperty("name")); //false

可以看到,在原型中新增的屬性例項化物件p1中含有,但是不是例項化物件p1自己的。