By the Javascript spec, when a function is invoked with new, Javascript creates a new object, then sets the "constructor" property of that object to the function invoked, and finally assigns that object to the name this. You then have access to the this object for the body of the function.
Once the function body is executed, Javascript will return:
ANY object if the function manually returns one:
function Car(){
this.num_wheels = 4;
return {num_wheels:37};
}
var car = new Car();
alert(car.num_wheels); // 37!
The this object if the function has no return statement OR if the function returns a value of a type other than object
function Car() {
this.num_wheels = 4;
return 'VROOM';
}
var car = new Car();
alert(car.num_wheels) // 4
alert(Car()); // No 'new', so this alerts 'VROOM'
js 语法 new function与function
最新推荐文章于 2024-05-07 17:50:46 发布