1:首先会创建一个对象
2:创建构造函数上面的属性和方法给这个对象
3:将这个对象的__proto__的属性赋一个构造函数的protypeof
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>
</title>
<script>
// alert(2423)
// console.log("423");
function Person(name,age)
{
this.name=name;
this.age=age;
}
function _New()
{
//创建一个对象
const obj={};
const [Person1,...arg]=[...arguments];
//给对象创建构造函数中的属性和方法
var res=Person1.apply(obj,arg);
//实例的显示原型指向构造函数的显示原型
obj.__proto__=Person1.prototype;
//如果构造函数自己有返回值,并且是对象的话我们就使用这个对象,否则就返回刚刚创建的对象
return res==='Object'?res:obj;
}
console.log(_New(Person,'小明',15));
</script>
</head>
<body>
</body>
</html>