原型——创建一个对象

用构造函数new一个对象

看下面的代码:

查看p1:

我们创建了构造函数Person,那么在new Person的过程中到底发生了什么

===

new一个构造函数,相当于实例化一个对象

1. 创建对象p1, p1 = {}

2. 对象p1具有_proto_属性,该属性指向一个对象:构造函数Person的原型对象(Person.prototype)

3. p1作为this调用构造函数Person,设置p1的属性和方法。


补充:

(1)从此对象p1与构造函数再无联系,对构造函数增加其他属性或方法不会影响已实例化的p1对象。

(2)此时p1具有name和age属性,也拥有构造函数Person的原型对象的所有成员(这里并没有成员)。



对象字面量

对象字面量构造的对象,__proto__指向Object.prototype

从这里也可以看出,Object也是一个函数,Object、Function都是是js自带的函数对象。验证:


Object.create()

p3的_proto_指向p2

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  •   面向对象(Object-Oriented,OO)的语言有一个标志,那就是它们都有类的概念,而通过类可以创建任意...
    霜天晓阅读 2,153评论 0 6
  • JS中原型链,说简单也简单。 首先明确: 函数(Function)才有prototype属性,对象(除Object...
    前小白阅读 3,976评论 0 9
  • 博客内容:什么是面向对象为什么要面向对象面向对象编程的特性和原则理解对象属性创建对象继承 什么是面向对象 面向对象...
    _Dot912阅读 1,456评论 3 12
  • 粉丝提问:最近我在网上看到很多关于Filenet的消息,起初,我也是疑惑,这到底是个什么样的东西,居然如此的火爆。...
    壹五叁说IPFS阅读 516评论 0 0
  • 在封建社会,皇帝的儿子可以妻妾成群,那么皇帝的女婿是不是可以如法炮制呢?答案是因人而异,也因情况而有所不同。 朱元...
    一夕厘阅读 633评论 0 0