原型检查的方法 getPrototypeOf 和 isPrototypeOf
// getPrototypeOf 可以获取对象的原型对象。
// obj.isPrototypeOf(pro_obj) 可以判断是否为某个对象的原型
// 1、例子
function Fn() {
}
var fn = new Fn();
var prototype = Object.getPrototypeOf(fn);
console.log(prototype); // Fn(){}
prototype = Object.getPrototypeOf(prototype);
console.log(prototype); // {}
prototype = Object.getPrototypeOf(prototype);
console.log(prototype); // {}
// fn的原型链就是 Fn.prototype -> Object.prototype -> null
console.log(Fn.prototype === Object.getPrototypeOf(fn)); // true
console.log(Object.getPrototypeOf(fn).isPrototypeOf(fn)); // true
console.log(Object.prototype.isPrototypeOf(fn)); // true
// Object.prototype 原型的属性
var props = Object.getOwnPropertyNames(Object.prototype);
for (let i = 0; i < props.length; i++) {
var desc = Object.getOwnPropertyDescriptor(Object.prototype, props[i]);
console.log(props[i], desc);
}