首页 > 解决方案 > 创建一个与 javascript 中的“new”(构造函数)关键字表现出相同行为的函数

问题描述

鉴于:

const obj = new SampleClass(param1);
console.log(obj.passedParam1); // displays the value of passed parameter

预期的:

const  obj = myNew(SampleClass, param1);
console.log(obj.passedParam1); // displays the value of passed parameter

其中 SampleClass(仅用于例如)可以是我们要构造对象的任何类。

请帮助我学习 js 我知道 new , objects , proto 的概念,但无法思考逻辑,所以请提出一种方法,如何实现它,这样我就可以从社区中学到新的东西。

提前致谢..!!!!

标签: javascript

解决方案


以下是您可以实现所需目标的方法之一

class SampleClass {
  constructor(param) {
    this.param = param;
  }
}

const myNew = (Class, ...params) => {
  return new Class(...params);
}

const sample = new SampleClass("Hello World");
console.log("using new: ", sample.param);

const sampleClass = myNew(SampleClass, "Hello");
console.log("using myNew:", sampleClass.param);


推荐阅读