new的创建过程

     大概步骤:

第一步:创建对象

 

第二步:原型赋值

 

第三步:Foo函数执行,this指向obj对象,给obj添加属性

 

第四步:返回obj对象

 

 

代码如下:

  function fn() {
    // 第一步:创建对象
    var obj = {};
    // 第二步:原型赋值
    obj.__proto__ = Foo.prototype;
    // 第三步:Foo函数执行,this指向obj对象,给obj添加属性。
    let result = Foo.call(obj, '张三', 20)
    // 第四步:判断构造函数是否返回对象数据类型,如果返回,则返回那个对象,如果没有返回则返回obj对象
    return typeof result === 'object' ? result : obj;
  }
  let b = fn();
  console.log(b);

 

### 回答1: 可以简单地描述为以下几个步骤: 1. 分配内存空间:new 关键字告诉程序需要为新对象分配内存空间。 2. 调用构造函数:对象被创建后,程序会自动调用与对象相关联的构造函数,创建并初始化类成员变量。 3. 返回对象指针:new 关键字返回一个指向新对象的指针,这个指针可以用于对象之间的引用或者赋值操作。 ### 回答2: 使用`new`关键字创建对象的过程如下: 1. 首先,`new`关键字用于实例化一个类,并为该对象分配内存空间。 2. 然后,会调用对象的构造函数来对内存位置进行初始化。构造函数是一个特殊的方法,通常在类定义中定义。 3. 构造函数将对象的成员变量进行初始化,并可以执行其他必要的初始化操作。 4. 在构造函数完成后,`new`表达式将返回一个指向新创建对象的指针或引用。 5. 然后,可以使用返回的指针或引用来访问对象的成员变量和方法。 6. 当对象不再使用时,应该使用`delete`关键字将其销毁,并释放其占用的内存空间。 总之,`new`关键字创建对象的过程包括实例化类、分配内存空间、调用构造函数初始化对象、返回指向对象的指针或引用。这样创建的对象可以在程序中被使用,并在不再需要时进行销毁。 ### 回答3: 使用`new`关键字创建对象的过程主要包含以下几个步骤: 首先,程序遇到`new`关键字时,会在内存中分配空间来存储对象的数据。根据对象的类型和大小,分配的内存空间大小也会不同。 然后,程序会调用对象的构造函数。构造函数是一种特殊的方法,用于初始化对象的状态和成员变量。构造函数可以设置默认值,或者接收参数来根据需要对对象进行初始化。 接下来,构造函数被执行,对象的成员变量被初始化。在这个阶段,程序根据构造函数的定义来给对象的各个成员变量分配内存并赋初始值。 在对象的构造过程完成之后,通过`new`关键字创建的对象就可以被使用了。我们可以调用对象的方法,修改对象的属性,并通过对象来访问其成员变量。 最后,在使用完对象后,我们应当手动释放对象的内存空间,以避免内存泄漏。使用`delete`关键字可以显式地释放对象的内存空间,此时对象将被销毁,并且其内存空间将被回收。 总结起来,使用`new`关键字创建对象的过程主要包括内存分配、构造函数调用和对象初始化。这样我们就可以通过对象来访问和操作其所包含的属性和方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值