function P(){
return {
test:'tom'
}
}
var p1 = new P(),
p2 = P();
console.log(p1.test);//tom
console.log(p2.test);//tom
这个是讲得构造函数返回值得问题:
如果存在返回值则检查其返回值是否为引用类型,如果为非引用类型,如(string,number,boolean,null,undefined),上述几种类型的情况与没有返回值的情况相同,实际返回实例化的对象
所以构造函数P返回了一个引用值,所以改变了原有的引用指向;
console.log(p1.__proto__ === P.prototype); //false