/*** new关键字的功能* 1.创建一个新对象* 2.让实例可以访问到私有属性* 3.让实例可以访问构造函数原型上的属性* 4.判断构造函数的返回值是否是引用类型*/function MyNew(ctor,...args){let obj = new Object()obj.__proto__ = Object.create(ctor.prototype);let res = ctor.apply(obj, args)return typeof res === 'object' ? res : obj;}function Person(name){this.name = name}Person.prototype.age = 18Person.prototype.sayHi = function(){console.log(this.name);}const p = MyNew(Person,'隔壁老王')console.log(p.age,p.name);p.sayHi()
