美文网首页
JavaScript 构造函数和创建实例化对象的过程

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

作者: 暴躁程序员 | 来源:发表于2022-06-20 16:57 被阅读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'}
    

    相关文章

      网友评论

          本文标题:JavaScript 构造函数和创建实例化对象的过程

          本文链接:https://www.haomeiwen.com/subject/avxqvrtx.html