它执行以下步骤:
function People(name){//this={} (隐式创建)this.name=name;// return this (隐式返回)}
function create(){let obj={};const Cons=[].shift.call(arguments);obj.__proto__=Cons.prototype;const result=Cons.apply(obj,arguments);return result instanceof Object? result: obj;}function People(name){this.name=name;}//测试调用create(People,'cc');
let obj={};function A() { return obj; }function B() { return obj; }let a = new A();let b = new B();alert( a == b ); // true
补充:通常,构造函数没有 return 语句。他们的任务是将所有必要的东西写入 this,并自动转换。 但是,如果有 return 语句,那么规则很简单:
换一种说法,带有对象的 return 返回该对象,在所有其他情况下返回 this
声明:本文所有资料来自网络摘抄,并自己整理。如果问题请联系我。