在 JavaScript 中 , 构造函数 与 对象 之间 是 描述 与 实例 之间的关系 ;
构造函数 抽象了 对象的公共部分 , 将 属性 和 方法 封装到了 构造函数中 , 可以理解为 面向对象 中的 类 ;
对象 指的是 某一个特定的实例化值 ;
在上一篇博客 【JavaScript】对象 ③ ( 使用 new Object 创建对象 | 使用 构造函数 创建对象 | 构造函数语法 | 使用 字面量 和 new Object 创建对象的方法弊端 ) 中 , 讲解了 构造函数的使用流程 ,
首先 , 定义构造函数 ;
// 1. 定义构造函数
function Person(uname, age) {
// 2. 在构造函数内部定义属性和方法
this.uname = uname;
this.age = age;
this.hello = function() {
console.log( this.uname + " is " + this.age + " years old");
};
}
然后 , 使用 new 操作符 调用构造函数 , 创建对象 ;
// 3. 使用 new 操作符调用构造函数,创建对象
var person = new Person('Tom', 18);
new 操作符 的 主要作用就是 创建一个新的对象实例 , 这个 对象实例 会继承构造函数的 prototype
对象 , 并 执行 构造函数 中的代码 , 来初始化新对象的属性和方法 , 下面详细分析 new 操作符 的执行过程 ;
new 操作符 创建对象 的执行过程 如下 :
__proto__
会被链接到 构造函数 的 prototype
对象 , 该 空对象 就可以 访问 在 构造函数 中 定义的 属性和方法 ;