美文网首页
探索new 实例化对象时帮我们做了哪些工作

探索new 实例化对象时帮我们做了哪些工作

作者: zackxizi | 来源:发表于2018-08-27 10:36 被阅读0次

1. 先看一个列子

    Person = function (age=12) {
        this.age = age
    }
    // 打印出来的值为undefined
    console.log(Person.age);

    // 但是通过new 运算符 就可以获取age值了
    // 此时被实例化的ming = Person {age: 12}
    ming = new Person(27)

    // 这里就能获取到age=27了
    console.log(ming.age)

那么为什么通过new之后就能通过键值对的形式获取age值呢

2. new 为我们创建实例做了哪些工作

    new Person(27) = {
        var obj = {}
        obj.__proto__ = Person.prototype // 此时便建立了obj对象的原型链
        var result = Person.call(obj, 27) // 通过call将Person的属性都复制到result
        return typeof result === 'object' ? result : obj // 如果无返回值或者返回一个非对象值,则将obj返回作为新对象
    }

参考:new创建对象的过程发生了什么

相关文章

  • 探索new 实例化对象时帮我们做了哪些工作

    1. 先看一个列子 那么为什么通过new之后就能通过键值对的形式获取age值呢 2. new 为我们创建实例做了哪...

  • new 函数做了什么?

    前言 最近看到一个MS题:在实例化对象时,new函数做了什么事情? 开始我是一阵恍惚,new不就是实例化出构造函数...

  • 反射

    正常方式:引入需要的“包.类”名称 ---> 通过new实例化 --->取得实例化对象反射方式:实例化对象--->...

  • 关于spring IOC的理解小记

    ioc为控制反转,通常我们使用new来实例化一个对象,使用spring框架后,我们将对象的实例化过程交给sprin...

  • new 关键字模拟实现

    首先,new 是JavaScript用来实例化一个对象的关键字,后边跟着构造函数,例如: 那么,new究竟做了什么...

  • Java反射之二:实例化对象、接口与父类、修饰符和属性

    这次是之二:实例化对象、接口与父类、修饰符和属性。 实例化对象 之前我们讲解过创建对象的方式,有new 、克隆、反...

  • 03-this的指向--js

    1.this在构造函数中 指向 实例对象 new 的过程 -- 实例化 被创建出来的对象 -- 实例对象 ...

  • IOS的 实例对象、 类对象、元类

    实例对象:就是我们通常的类的实例化的对象比如Obj * obj = [Obj new];,那么这个obj 就是一个...

  • 常用设计模式

    工厂设计模式 工厂设计模式,主要用于进行实例化对象时的解耦操作,避免使用new关键字实例化对象,通过反射,根据类名...

  • ASP.NET 操作XML文件

    实例化(new)一个XML文档对象:XmlDocument xml = new XmlDocument(); 载入...

网友评论

      本文标题:探索new 实例化对象时帮我们做了哪些工作

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