new运算符详解(JavaScript)

Posted 曾胖神父

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了new运算符详解(JavaScript)相关的知识,希望对你有一定的参考价值。

什么是new运算符?

定义

new运算符创建一个用户定义的对象类型的实例或具有构造函数的内置对象的实例。

描述

new 关键字会进行如下的操作
1,创建一个空的简单javascript对象(即);
2, 为步骤1新创建的对象添加属性__proto__,将该属性链接至构造函数的原型对象;
3. 将步骤1新创建的对象作为this的上下文
4. 如果该函数没有返回对象,则返回this。

Demo

代码如下

//函数Person
function Person(name,age)
    this.name=name;
    this.age=age;


Person.prototype.sayName=function()
    console.log(this.name);

function new2(Fn,...reset)
    //Object.create方法用于创建一个新对象,使用现有的对象来作为新创建对象的原型
    let obj=Object.create(Fn.prototype);
    //将新创建的对象作为this的上下文(使用apply实现)
    let result=Fn.apply(obj, reset);
    //如果该函数没有返回对象,则返回this
    return typeof result === 'object'?result:obj;

const newTest= new2(Person,'王五',24);
newTest.sayName();

以上是关于new运算符详解(JavaScript)的主要内容,如果未能解决你的问题,请参考以下文章

C++ 内存分配(new,operator new)详解

转C++ 内存分配(new,operator new)详解

c++内存分配(new,operator new)详解

C++ 内存分配(new,operator new)详解

C++ 内存分配(new,operator new)详解

JavaScript逻辑not运算符详解