小编典典

构造函数返回什么?

javascript

如果我在构造函数中返回一些值或对象,那么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语句)


阅读 319

收藏
2020-05-01

共1个答案

小编典典

我发现了这个很棒的链接:

上面提到的第二点魔术是构造函数返回特定的,可能预先存在的对象而不是对新实例的引用的能力。如果需要,这将允许您自己管理实际实例的数量;可能是由于资源有限等原因。

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!");
2020-05-01