程序员

3分钟理清JavaScript “构造函数、对象、原型”的关系

2018-10-26  本文已影响0人  FengxuWang

是不是觉得“构造函数、对象、原型”三者之间指来指去,又是prototype、又是__proto__,还有个constructor,关系剪不断理还乱?
本文介绍构造函数、对象、原型的概念和他们之间的关系,先上结论:

0. 三者关系图

image

1. 构造函数

是对象的模板,在创建对象的时候用new执行

JS构造函数和java类的比较

  1. java的类
    • 类是对象的模板
    • 类里面有构造函数(自定义或默认),new的时候只执行构造函数
  2. JS的构造函数
    • 构造函数是对象的模板
    • 这个函数就是全部,new的时候执行这个函数全部内容

2. 对象

new执行构造函数后生成的实体,有构造函数、原型的属性、方法

3. 原型

function Person() {

}

var xiaoming = new Person();

var xiaohong = new Person();

console.log(xiaoming.__proto__ === Person.prototype);  // true

console.log(xiaohong.__proto__ === Person.prototype);  // true


console.log(Person===Person.prototype.constructor);//true

参考:
1. 构造函数、对象、原型三者关系
2. 构造函数、new、this详解

上一篇 下一篇

猜你喜欢

热点阅读