JavaScript 构造函数和创建实例化对象的过程

2022-06-20  本文已影响0人  暴躁程序员

1. 构造函数和普通函数的区别

构造函数在使用时,需要用 new 关键词创建一个基于构造函数的实例化对象
普通函数在使用时,通过 函数名() 的方式调用,用于分割代码,改变代码块的调用顺序

构造函数内部的 this 指向实例化后的对象,使用 this 创建实例属性
普通函数内部的 this 指向全局对象

一般构造函数创建时需要首字母大写,以此区分普通函数

2. 构造函数实例化成对象的过程

  1. 首先创建了一个新的空的实例对象{}
  2. 将新对象的原型__proto__指向构造函数的prototype原型对象
  3. 改变this指向,让空对象继承构造函数的属性
  4. 返回这个实例对象
// 创建构造函数
function A() {
    this.name = 'A'
}

// new 关键词实现实例化
console.log(new A()); // 结果: {name: 'A'}

// 模仿实例化过程
function newA() {
    const obj = {}
    obj.__proto__ = A.prototype
    A.apply(obj)
    return obj
}
console.log(newA()); // 结果: {name: 'A'}
上一篇下一篇

猜你喜欢

热点阅读