原型和原型链的理解
- 原型:每个函数都有prototype属性,该属性指向原型对象。
使用原型对象的好处是所有对象实例共享它所包含的属性和方法。 - 原型链:访问一个对象的属性时,如果该对象内部不存在这个属性,那么就会沿着它的_proto_ 属性所指向的那个对象(父对象)里找,直到为null为止,这样一层一层的就构成了原型链。
主要解决了继承的问题。
原型的作用
- 数据共享,节约内存空间。
- 实现继承。
注意:函数也是一个对象,对象不一定是函数。
proto__是对象的,prototype是函数的,因为函数也是对象,所以函数也有__proto
举例:
function Parent(month){
this.month = month;
}
var child = new Parent('Ann');
console.log(child.month); // Ann
console.log(child.father); // undefined