#15实现MyNew方法
要实现的功能
我们可以使用new
实例化一个构造函数,请根据实例化过程中构造函数内部工作流程,实现类似功能的MyNew
方法。
代码示例
function MyNew(fn, ...args) {
// 实现...
}
function Person(name, age) {
this.name = name;
this.age = age;
}
const kasong = MyNew(Person, 'KaSong', 18);
console.log(kasong.age); // 18
function Something(name) {
this.name = name;
return {name: 'something'};
}
const something = MyNew(Something, 'XiaoMing');
console.log(something.name); // something
问题补充
- 请阐述实例化过程中构造函数内部工作流程
- 请写出代码,并为代码的关键步骤增写注释
- 附带测试用例是加分项
- 不需要考虑异常发生
- 不过度设计,代码简洁优雅是加分项
最佳答案
理由:实现完备,且包含问题补充中的所有要素
答题同学须知
-
答题规范:请在
一次评论
中完成作答,后续修改也请编辑该评论,而不是追加新的评论 -
评选标准:最佳答案由
围观同学
的👍 和卡颂共同决定 -
评选时间:一般是当日18:00左右评选,如果问题发布当天回答数较少,问题悬赏金额可能增加,同时悬赏时间也会增加
围观同学须知
-
对于你满意的答案,请不要吝惜你的
👍 ,这是评选最佳答案的依据 -
非答题的评论
会被删除,问题相关讨论请在赏金猎人群中进行