题目
请补全JavaScript代码,要求实现对象参数的深拷贝并返回拷贝之后的新对象。
注意:
1. 参数对象和参数对象的每个数据项的数据类型范围仅在数组、普通对象({})、基本数据类型中]
2. 无需考虑循环引用问题
编辑
核心代码
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>new</title> </head> <body> <script type="text/javascript"> const _new = function (constructor, ...args) { // new关键字做了4件事 // 1. 创建一个新对象 const obj = {}; // 2. 为新对象添加属性__proto__,将该属性链接至构造函数的原型对象 obj.__proto__ = constructor.prototype; // 3. 执行构造函数,this被绑定在新对象上 const res = constructor.apply(obj, args); // 4. 确保返回一个对象 return res instanceof Object ? res : obj; }; </script> </body> </html>