JavaScript理解 |
您所在的位置:网站首页 › left函数用法与理解 › JavaScript理解 |
原型与原型链是什么?
(1)原型是什么?
原型是一个对象。每一个JavaScript对象(null除外)在创建的时候都会关联另一个对象,这个对象就是我们所说的原型。 怎么解释呢?首先假设一个构造函数Person,用new创建一个实例对象person1. 然后已知每个函数都会有一个属性叫做prototype,属性prototype指向的是一个对象,这个对象也就是调用构造函数Person时创建的实例的原型。 所以构造函数与实例原型通过prototype属性联系在一起 构造函数Person,实例原型Person.prototype 通过属性prototype联系
除此之外,每一个javaScript对象(null除外)都有一个属性叫做_proto_ , 然后javaScript对象通过属性_proto_与原型联系,这个属性指向对象的原型 也就是说 实例对象person1通过属性_proto_与实例原型Person.prototype (2)原型是怎么创建的? 原型是对象,既然是对象,那么我们就可以用构造函数Object()来创建。 所以Person.prototype就是构造函数Object()创建出来的实例对象,所以构造函数Object的属性prototype会指向Object.prototype. 然后实例对象Person.prototype通过属性_proto_指向其原型对象Object.prototype.
Object.prototype也是对象,那它的原型呢?是null 一般在查找属性的时候,查到Object.prototype就可以不找了。
(3)原型链是什么? 就是说当读取实例对象的属性的时候,如果在实例中找不到这个属性,就会查找与这个实例关联的原型里的属性。如果还找不到,就通过_proto_去找原型的原型,直到找到最顶层为止。最终是null。这样,由原型通过属性_proto_组成的链状结构就叫做原型链。 (4)使用原型有什么好处? 通过使用原型,可以避免在每个实例里定义相同的属性和方法,从而节省内存。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |