javascript - 创建一个与 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 的概念,但无法思考逻辑,所以请提出一种方法,如何实现它,这样我就可以从社区中学到新的东西。
提前致谢..!!!!
解决方案
以下是您可以实现所需目标的方法之一
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);
推荐阅读
- java - 在某些设备中出现错误“android.view.InflateException: Binary XML file line #2: Binary XML file line #2: Error inflating class
" - reactjs - “蓝图”对象没有属性“配置”
- java - 如何正确使用 DoThrow()
- reactjs - Redux 存储在使用函数时落后了一步
- java - 我似乎在代码中找不到任何逻辑错误,但它仍然无法按预期工作
- kubernetes - kubectl autoscale 与 kubectl scale 有什么区别
- wso2 - 命名参数在数据服务查询中不能多次使用
- mysql - pgsql - 从 mysql 转换纪元时间戳
- javascript - 为什么人们在 React 的状态属性中定义 render() 中的变量?
- memory-leaks - 使用 Embarcadero 10.3.1 时代码中的内存泄漏