prototype原型

栏目: 编程语言 · 发布时间: 5年前

内容简介:当程序加载

1、prototype介绍

  • 功能:返回对象类型原型的引用
  • 格式:Class.prototype

2、快速入门

prototype原型

注意:

Person.prototype.age 不是 Person.age

Person.prototype.age 是指为 Person 类下的实例添加的 age 属性

Person.age 是指为 Person 类添加的静态属性

3、原理

prototype原型

当程序加载 Person 函数时,会为 Person 构造器创建 Person 原型对象,它们是独立存在的。构造器中有一个 prototype 属性指向了原型对象,原型对象中有一个 constructor 属性指向构造器,当 Person 类的实例在使用一个不存在的属性时,就会自动到 Person 构造器的原型对象中去找。

p1.constructor : p1 对象中没有 constructor 属性,所以会到 Person 构造器的原型对象中去找,原型对象中的 constructor 指向了 Person 构造器,所以最后返回的是构造器。

问题:增加 p3.age=20 ,那么 p1.age 的值是多少?

prototype原型

p3.age 相当于为 p3 对象动态添加了一个叫 age 的属性,但没有改变 Person 原型对象中的 age 的值,之后 p3 不用去原型对象中找 age 属性了, p1 仍然没有 age 属性,所以仍然去找原型对象中的 age 属性。

4、原型继承

所有类的父类都是 Obeject 类,为什么?

问题:

原型是什么?

原型是对象,它是 Object 类的实例。

当系统为 Person 构造器创建原型对象时,会执行这样一条语句:

Person.prototype=new Object() ,也就是说,这个原型是 Object 的一个实例。那么, Object 类下的所有属性和方法会被这个原型对象所拥有。 Person 下的实例就可以通过这个原型对象使用这些属性和方法,所以说, Object 是所有类的父类。

5、原型链

prototype原型

Person 原型对象也是对象,当这个对象找不到某个属性时,会到 Object 构造器的原型对象中去找,这个就是原型链。


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Google将带来什么?

Google将带来什么?

杰夫·贾维斯 / 陈庆新、赵艳峰、胡延平 / 中华工商联合出版社 / 2009-8 / 39.00元

《Google将带来什么?》是一本大胆探索、至关重要的书籍,追寻当今世界最紧迫问题的答案:Google将带来什么?在兼具预言、宣言、思想探险和生存手册性质的这样一《Google将带来什么?》里,互联网监督和博客先锋杰夫·贾维斯对Google这个历史上发展速度最快的公司进行了逆向工程研究,发现了40种直截了当、清晰易懂的管理与生存原则。与此同时,他还向我们阐明了互联网一代的新世界观:尽管它具有挑战性......一起来看看 《Google将带来什么?》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

html转js在线工具
html转js在线工具

html转js在线工具