内容简介:当程序加载
1、prototype介绍
- 功能:返回对象类型原型的引用
- 格式:Class.prototype
2、快速入门
注意:
Person.prototype.age 不是
Person.age
Person.prototype.age 是指为 Person 类下的实例添加的 age 属性
Person.age 是指为 Person 类添加的静态属性
3、原理
当程序加载 Person 函数时,会为 Person 构造器创建 Person 原型对象,它们是独立存在的。构造器中有一个 prototype 属性指向了原型对象,原型对象中有一个 constructor 属性指向构造器,当 Person 类的实例在使用一个不存在的属性时,就会自动到 Person 构造器的原型对象中去找。
p1.constructor : p1 对象中没有 constructor 属性,所以会到 Person 构造器的原型对象中去找,原型对象中的 constructor 指向了 Person 构造器,所以最后返回的是构造器。
问题:增加 p3.age=20 ,那么 p1.age 的值是多少?
p3.age 相当于为 p3 对象动态添加了一个叫 age 的属性,但没有改变 Person 原型对象中的 age 的值,之后 p3 不用去原型对象中找 age 属性了, p1 仍然没有 age 属性,所以仍然去找原型对象中的 age 属性。
4、原型继承
所有类的父类都是 Obeject 类,为什么?
问题:
原型是什么?
原型是对象,它是 Object 类的实例。
当系统为 Person 构造器创建原型对象时,会执行这样一条语句:
Person.prototype=new Object() ,也就是说,这个原型是 Object 的一个实例。那么, Object 类下的所有属性和方法会被这个原型对象所拥有。 Person 下的实例就可以通过这个原型对象使用这些属性和方法,所以说, Object 是所有类的父类。
5、原型链
Person 原型对象也是对象,当这个对象找不到某个属性时,会到 Object 构造器的原型对象中去找,这个就是原型链。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
破茧成蝶:用户体验设计师的成长之路
刘津、李月 / 人民邮电出版社 / 2014-7 / 69.00
市面上已经有很多专业的用户体验书籍,但解决用户体验设计师在职场中遇到的众多现实问题的图书并不多见。本书从用户体验设计师的角度出发,系统地介绍了其职业生涯中的学习方法、思维方式、工作流程等,覆盖了用户体验设计基础知识、设计师的角色和职业困惑、工作流程、需求分析、设计规划和设计标准、项目跟进和成果检验、设计师职业修养以及需要具备的意识等,力图帮助设计师解决在项目中遇到的一些常见问题,找到自己的职业成长......一起来看看 《破茧成蝶:用户体验设计师的成长之路》 这本书的介绍吧!