JavaScript---原型

来源:互联网 发布:126邮箱smtp端口号 编辑:程序博客网 时间:2024/05/18 00:28
得意

1)构造函数的弊端:
方法功能相同,但是却存在不同的内存空间中。

这样浪费了内存空间。没有必要。

2)原型:
每一个函数都有一个prototype属性,该属性指向了一个原型对象。
原型对象是用来存放共有的属性和方法。

默认情况下,所有原型对象会自动包含一个constructor属性,该属性也是一个指针,指向prototype所在的函数(构造函数):
用构造函数创建新的实例时,该实例的内部会自动包含一个[[Prototype]]属性,指向构造函数的原型对象。这个属性的访问方式 : 对象名 . __proto__
TIPs:
实际开发中,构造函数和原型对象一般会结合使用,

可以灵活的控制对象的数据共享与不共享。
需要共享的属性和方法就放到----原型对象中,
不需要共享的属性和方法就放到----对象或构造函数中。


3)原型链:
因为任何一个对象都有[[prototype]]属性,原型对象也是对象,也有[[prototype]]属性.
这样形成了一条原型链。最终指向的是Object构造函数的原型对象。
Object构造函数的原型对象的原型对象是null

访问一个对象的属性或方法,如果该对象本身没有,就会沿着这条原型链一直查询,
找到了就拿来使用。找不到就报错。




原创粉丝点击