原型链

对象,构造函数,原型的三角关系:

每一个构造函数都有prototype属性,指向原型;原型中有属性constructor指向构造函数;实例(对象)中有属性__prototype__指向原型,创建出来的实例是可以直接访问原型对象上的成员。

关于原型上的一些注意点:

添加到构造函数上的一些成员,实例是无法获取到的;添加到原型上的成员,实例可以获取。

<script>
function Person(name, age) {
this.name = name;
this.age = age;
}
Person.prototype.car = '摩托罗拉';
Person.money = 1000;
 
var p = new Person('zs', 18);
 
console.log(p.name); // zs
console.log(p.age); // 18
console.log(p.car); // 摩托罗拉
console.log(p.money); // undefined;

</script>

 

原型链的形成:

一个对象有它自己的原型,原型也可以看成一个对象,有它自己的原型,这样一环扣一环,就形成了一个原型链,。

结论:实例可以访问自己的属性,原型的属性可以访问,原型链上的也就以访问。

实例在获取属性时,首先时是去访问自己的,如果没有,就在原型链上就近查找;当实例去修改属性时,只会修改自己的,自己有这个属性,直接修改,没有就新建添加值,不会对原型进行修改。

posted @ 2019-05-24 00:32  王木木*  阅读(147)  评论(0编辑  收藏  举报