如果我在构造函数中返回一些值或对象,var会得到什么?
function MyConstroctor()
{
//what in case when return 5;
//what in case when return someObject;
}
var n = new MyConstroctor();
Run Code Online (Sandbox Code Playgroud)
在这两种情况下会得到什么?
实际上它是一个测验问题,答案是什么?
从自定义对象构造函数返回什么?
a)新实例化的对象
b)未定义 - 构造函数不返回值
c)返回语句
是什么d)返回语句是什么; 如果没有return语句,则新实例化的对象
如果有像这样的构造函数
function a() {}
Run Code Online (Sandbox Code Playgroud)
然后
(new a) instanceof a === true
Run Code Online (Sandbox Code Playgroud)
但另一方面,
function a() { return {} }
Run Code Online (Sandbox Code Playgroud)
结果是
(new a) instanceof a === false
Run Code Online (Sandbox Code Playgroud)
所以我在想的是
function a() { return 123 }
Run Code Online (Sandbox Code Playgroud)
会导致同样的事情.但是,当返回一个数字时,
(new a) instanceof a === true
Run Code Online (Sandbox Code Playgroud)
这怎么可能?为什么我不能让构造函数返回除Object之外的其他内容?
(我知道让一个构造函数返回一个数字是没用的但是我想理解这个行为的'为什么')