1.在函数内部创建了一个空对象
2.通过this指向把函数的方法和属性给新创建的对象
3.返回这个创建的对象
代码实现:
Object.create()方法创建一个新对象,使用现有的对象来提供新创建的对象的__proto__。
// 先创建一个构造函数
function Fn(name){
this.name = name
}
// 实现一个new的方法
function newMethod(parent) {
//1. 第一步创建一个空对象 这里使用Object.create() 创建
let obj = Object.create(parent.prototype) // 此时就把原型的方法给新对象 也有了方法
//2. 改变this指向 并指向函数
parent.call(obj)
// 3.返回对象
return obj
}
/* 我们来调用看看结果 */
let v = newMethod(Fn)
console.log(v)