Object.create(对象参数) 作用:创建一个空对象,其__proto__指向【对象参数】。
1、根据功能进行代码直译(不推荐)
Object.myCreate = function (obj) {
let emptyObj = {};
// 但是__proto__在IE下已被禁用,兼容性不好,所以我们要想其他方法
emptyObj.__proto__ = obj;
return emptyObj;
}
console.log(Object.myCreate({
name: "李四"
}));
2、使用空方法原型挂载目标对象,返回空方法实例(推荐)
- 知识点1:空方法实例化可以创建空对象
- 知识点2:方法的原型等价于实例化后的对象的原型链,即
(方法).prototype = (实例对象).__proto__
// 使用空方法原型挂在目标对象,做实例化
// 知识点1:空方法实例化可以创建空对象
// 知识点2:方法的原型等价于实例化后的对象的原型链,即 (方法).prototype = (实例对象).__proto__
Object.myCreate1=function(obj){
function Fun(){}
Fun.prototype=obj;
return new Fun();
}