原型:每一个构造函数都有一个指针(prototype)指向原型对象,
每一个原型对象都有一个指针(constructor)指向构造者,构造函数创建实例都有一个指针__proto__指向原型对象。
Object原型中常用的方法:
constructor
保存用户创建当前对象的函数,与原型对象对应的构造函数
hasOwnProperty(propertyName)
检查给定的属性名是否是对象的自有属性
propertyIsEnumerable(propertyName)
检查给定的属性在当前对象实例中是否存在
valueOf()
返回对象的字符串,数值,布尔值的表示
toLocaleString()
返回对象的字符串表示,该字符串与执行环境的地区对应
toString()
返回对象的字符串表示
isPrototypeOf(object)
检查传入的对象的原型
a.isPrototypeOf(b) 如果a是b的原型,则返回true。如果b不是对象,或者a不是b的原型,则返回false。
var obj = new Object();
var obj1 = {};//也是构造函数创建
// 构造函数
console.log(Object);
// 该构造函数所对应的原型对象
console.log(Object.prototype);
// 每一个原型对象都有指针指向构造者
console.log(Object.prototype.constructor === Object);
// 每一个实例对象都有一个指针指向原型对象
console.log(obj.__proto__ === Object.prototype);
console.log(obj.__proto__.toString() === Object.prototype.toString());
console.log(obj.__proto__.valueOf() === Object.prototype.valueOf());
// 对象实例可以访问的方法和属性 实例方法也叫原型方法
运行结果