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 构造器的原型对象中去找,这个就是原型链。


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

查看所有标签

猜你喜欢:

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

算法图解

算法图解

[美] Aditya Bhargava / 袁国忠 / 人民邮电出版社 / 2017-3 / 49.00元

本书示例丰富,图文并茂,以让人容易理解的方式阐释了算法,旨在帮助程序员在日常项目中更好地发挥算法的能量。书中的前三章将帮助你打下基础,带你学习二分查找、大O表示法、两种基本的数据结构以及递归等。余下的篇幅将主要介绍应用广泛的算法,具体内容包括:面对具体问题时的解决技巧,比如,何时采用贪婪算法或动态规划;散列表的应用;图算法;K最近邻算法。一起来看看 《算法图解》 这本书的介绍吧!

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具