构造函数返回什么?

如果我在构造函数中返回一些值或对象,那么var会得到什么?


function MyConstroctor()

{

    //what in case when return 5;

    //what in case when return someObject;

}


var n = new MyConstroctor();

在两种情况下都会得到什么n?


实际上,这是一个测验问题,答案是什么?

自定义对象构造函数返回什么?

a)新实例化的对象

b)未定义-构造函数不返回值

c)不管return语句

是什么d)不管return语句是什么; 新实例化的对象(如果没有return语句)


猛跑小猪
浏览 628回答 3
3回答

慕桂英4014372

我发现了这个很棒的链接:JavaScript:构造函数返回值上面提到的第二个魔术是构造函数返回特定的,可能预先存在的对象而不是对新实例的引用的能力。如果需要,这将允许您自己管理实际实例的数量;可能是由于资源有限等原因。var g_deebee = new Deebee();function Deebee() { return g_deebee; }var db1 = new Deebee();var db2 = new Deebee();if (db1 != db2)  throw Error("JS constructor returned wrong object!");

慕雪6442864

简短答案构造函数返回  this对象。function Car(){   this.num_wheels = 4;}// car = {num_wheels:4};var car = new Car();长答案根据Javascript规范,当使用调用函数时new,Javascript创建一个新对象,然后将该对象的“ constructor”属性设置为所调用的函数,最后将该对象分配给name this。然后,您可以访问this该函数主体的对象。一旦函数体被执行,Javascript将返回:ANY对象,如果函数手动返回一个:function Car(){  this.num_wheels = 4;  return {num_wheels:37};}var car = new Car();alert(car.num_wheels); // 37!的this对象,如果函数没有return声明,或如果函数返回比其他类型的值objectfunction Car() {  this.num_wheels = 4;  return 'VROOM';}var car = new Car();alert(car.num_wheels) // 4alert(Car()); // No 'new', so this alerts 'VROOM'
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript