美文网首页
实现模拟JS的new功能

实现模拟JS的new功能

作者: easy_mark | 来源:发表于2019-07-09 17:31 被阅读0次

new功能是要生成一个构造函数的实例,所以在实现过程中需要我们手动创建一个空对象,对象的原型继承自构造函数。如果调用构造函数无返回结果,则返回结果,否则返回创建的对象。

function new2(...rest){
    let obj = {};
    let [context,...args] = rest;
    obj._proto_ = Object.create(context.prototype);
    let result = context.apply(obj,args);
    return typeof result =="object" ? result : obj
}

function d(age){
    this.age = age;
    return {age:this.age,name:"111"}
}
var c = new2(d,16);
c 
//{age: 16, name: "111"}

相关文章

  • 实现模拟JS的new功能

    new功能是要生成一个构造函数的实例,所以在实现过程中需要我们手动创建一个空对象,对象的原型继承自构造函数。如果调...

  • 面试官问:能否模拟实现JS的call和apply方法

    之前写过两篇《面试官问:能否模拟实现JS的new操作符》和《面试官问:能否模拟实现JS的bind方法》 其中模拟b...

  • js new的模拟实现

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

  • js模拟实现new运算符功能

    new 运算符创建一个用户定义的对象类型的实例或具有构造函数的内置对象类型之一 示例: 我们可以看到,实例可以访问...

  • new的模拟实现

    原文出处 JavaScript深入之new的模拟实现 new 我们在模拟 new 之前,先看看 new 实现了哪些...

  • new 功能模拟

  • 实现js中new的功能

    首先看看new具有哪些功能: 创建一个对象,对象的原型指向构造函数的prototype。 构造函数里的this指向...

  • 模拟实现js中new的作用

  • 再学JS--new的模拟实现

    什么是new? new运算符创建一个用户定义的对象类型的实例或具有构造函数的内置对象类型之一 举个例子说明下: 从...

  • 模拟实现new

    mdn关于new运算符的介绍: new 运算符创建一个自定义对象或具有构造函数的内置对象的实例。 是不是看着有点懵...

网友评论

      本文标题:实现模拟JS的new功能

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