原型链

来源:互联网 发布:java字符串转数组 编辑:程序博客网 时间:2024/05/22 13:06
一。原型链:一个对象会有一个原型,(对象.__proto__),同时原型也是一个对象,也有原型
p.__proto__===Person.prototype
最终的Object.prototype.__prototype__=null;
//Object Array String Date构造函数
//Math是内置对象
//1. var p = new Person();
// p --> Person.prototype --> Object.prototype --> null

//2. var arr = [];
// arr --> Array.prototype --> Object.prototype --> null

//3. var date = new Date();
// date --> Date.prototype --> Object.prototype --> null

//4. var obj = {}
// obj --> Object.prototype -- > null

而Math是对象
Math -->Object.prototype -->null;

二。Object.prototype的方法和属性
obj.hasOwnProperty(prop):判断prop属性是否是obj自己提供;
obj.propetyIsEnumerable(prop):判断prop是否是自己的属性,prop是否可以便利
obj1.isPrototypeOf(obj2):判断obj1是否在obj2原型链上
toString():Object.prototype.toString() [object type] 将对象转换成字符串,一般内置对象方法中都会重写toString方法
toLocaleString():跟本地化有关,Date();
valueOf():将对象转换成简单数据类型,优先,底部默认转换数据类型,隐世转换就是这个相关