原理:

在原型式的继承上在封装一层、用于增强对象

代码理解

  1. function object(o) {
  2. function F() { }
  3. F.prototype = o
  4. return new F()
  5. }
  6. function createUser(original) {
  7. var clone = object(original);
  8. clone.getName = function () {
  9. console.log(this.name)
  10. };
  11. return clone;
  12. }
  13. let user = {
  14. name: "z",
  15. age: 18,
  16. hobby: ['找小姐姐', '找富婆']
  17. }
  18. let user1 = createUser(user);

缺点

  • 某个实例去改变原型会导致所有实例的原型都发送改变
  • 无法传递参数