1. 两个特殊对象,Object 和 Function他们也都是构造函数,用于创建对象
1)Object.prototype 所有对象的祖先
2)Function.prototype 所有函数的原型,包括构造函数
2. javascript大概可以分为三类:
1)用户创建的对象 new
2)构造函数对象 function
3)原型对象 prototype
注:①以上三种类型的对象都有一个__proto__的属性,它指向对象原型
②从任何对象开始遍历都可以找到Object.prototype
③构造函数对象有prototype属性,它指向一个原型对象,通过该构造函数创建对象,该对象的__proto__属性指向构造函数的prototype属性
④原型对象有constructor属性,指向它对应的构造函数
如下例子:
function Foo(){
}
Object.prototype.name = 'My Object';
Foo.prototype.name = 'bar';//构造函数的原型属性name
var obj = new Object();
var foo = new Foo();
console.log(boj.name);// My Object
console.log(foo.name);// bar
console.log(foo.__proto__.name);// bar foo的原型属性name
console.log(foo.__proto__.__proto__.name);//My Object
console.log(foo.__proto__.constructor.__proto__.name);//bar
3. javascript 继承机制
1)javascript的继承是一种交原型链的机制实现的
2)属性继承的本质就是一个对象可以访问到原型链上任何一个原型对象的属性