如何实现一个new

Posted

tags:

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

参考技术A 关键字new在调用构造函数的时候进行了如下几个步骤:

1.创建一个新对象

2.将构造函数的作用域赋值给新对象(新对象的proto 指向构造函数的 prototype,并且proto的constructor指向构造函数

3.将构造函数的this指向obj,这样obj就可以访问到构造函数中的属性

4.如果构造函数没有返回其他对象,那么返回 obj ,否则返回构造函数中返回的对象

function _new()

    let obj = ;

    const Fn = [].shift.call(arguments);

    obj.__proto__ = Fn.prototype;

    let result = Fn.apply(obj, arguments);

    return  (typeof result === 'object' || typeof result === 'function') ? result : obj;

   

    function A(str)

    return function()

    console.log(str)

   

   

    let a = _new(A, a: 'hhhh');

    let b = new A(a: 'hhhh');

以上是关于如何实现一个new的主要内容,如果未能解决你的问题,请参考以下文章

如何实现 type:(new mongoose.Schema) as Array

如何实现 type:(new mongoose.Schema) as Array

system.new.dat和system.img如何实现相互转换

Laravel 5 new auth:获取当前用户以及如何实现角色?

关于new操作符如何实现C中的realloc函数

如何判断Golang接口是否实现?