# 构造函数与原型链

所谓“类”就是对象的模板,对象就是“类”的实例。所谓构造函数,就是操作一个空对象(即this对象),将其构造为需要的样子。 但是,在JavaScript语言的对象体系,不是基于“类”的,而是基于构造函数(constructor)和原型链(prototype)。

# 构造函数(constructor)

构造函数,就是提供一个生成对象的模板,并描述对象的基本结构的函数。

特点:   a:构造函数的函数名的第一个字母通常大写。   b:函数体内使用this关键字,代表所要生成的对象实例。   c:生成对象的时候,必须使用new命令来调用构造函数。

# new 命令

new命令的作用,就是执行一个构造函数,并且返回一个对象实例。使用new命令时,它后面的函数调用就不是正常的调用,而是依次执行下面的步骤。   a:创建一个空对象,作为将要返回的对象实例。   b:将空对象的原型指向了构造函数的 prototype 属性。   c:将空对象赋值给构造函数内部的 this 关键字。   d:开始执行构造函数内部的代码。

new 操作总会返回一个对象引用(reference),如果构造函数内部有 return 语句。

// 情况一:
function Parent() {
  return {a: 1} // new 操作将会返回 {a: 1} 对象引用
}
// 情况二:
function Parent2() {
  return 'string' // new 操作会忽略此句,返回 {} 对象引用
}

# 参考

JavaScript 中的构造函数 (opens new window)

Last Updated: 5/14/2022, 11:38:45 AM