例子一:
var Test = function(){
this.name = "qudc";
return "qudc";
}
var a = Test();
var b = new Test();
例子二:
var Test = function(){
this.name = "qudc";
return function(){return "Test"};
}
var a = Test();
var b = new Test();
上面两种情况,b都是一个对象,对象的构造方法是不是Test 要看有没有返回对象,如果返回对象(例子二中),那么b.constructor 为 Function 。例子一中,b.constructor 为 Test。
执行方法Test,返回值的类型由方法中的return语句来决定。
只要new一个函数(构造函数),如果构造函数没有返回值或者返回值不是对象,那么默认返回this对象,即本对象。如果返回其他对象,那么结果即为别的对象。调用new一个函数,会创建一个新的对象,在构造函数内部 ,即被调用的函数中, this 指向新创建的对象 Object。
例子二中 a 和 b没有功能性上的区别。可以认为相似,但不相同。