原理:
在原型式的继承上在封装一层、用于增强对象
代码理解
function object(o) {
function F() { }
F.prototype = o
return new F()
}
function createUser(original) {
var clone = object(original);
clone.getName = function () {
console.log(this.name)
};
return clone;
}
let user = {
name: "z",
age: 18,
hobby: ['找小姐姐', '找富婆']
}
let user1 = createUser(user);
缺点
- 某个实例去改变原型会导致所有实例的原型都发送改变
- 无法传递参数