如何实现一个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如何实现相互转换