示例代码

image.png

in

[javaScript高级程序设计-第四版:232页]说明:在for...in...循环中使用in操作符时,可以通过对象访问且可以被枚举的属性都会被返回。包括实例属性和原型属性
for(var key in p1){
console.log(key);//name age sayName sayHello
}

getPrototypeOf

[javaScript高级程序设计-第四版:227页]说明:取得一个对象的原型
console.log(Object.getPrototypeOf(p1)==Person.prototype);//true

hasOwnProperty

[javaScript高级程序设计-第四版:229页]说明:确定某个属性是在实例上还是原型对象上。存在原型上返回false,存在实例上返回true
console.log(p1.hasOwnProperty('name'));//true
console.log(p1.hasOwnProperty('sayHello'));//false

面题:判断一个属性是否是原型上的

以对象p1来示例。sayHello是否是原型上的。
console.log(!p1.hasOwnProperty('sayHello')&&('sayHello' in p1));