原理:
通过构造一个空对象、并设置原型链对象、然后返回出去进行扩展
代码理解
function object(o) {function F() {}F.prototype = oreturn new F()}let user = {name: "z",age: 18,hobby:['找小姐姐','找富婆']}let user1 = object(user);console.log(user1)user1.hobby.push('找美女')let user2 = object(user);console.log(user.hobby) // hobby: (3) ['找小姐姐', '找富婆', '找美女']
缺点
- 某个实例去改变原型会导致所有实例的原型都发送改变
- 无法传递参数
