JavaScript返回与新返回

时间:2018-08-10 11:32:23

标签: javascript

我已经进行了一些测试,并且想知道为什么new TestOne()会求出该函数的新实例,而new TestThree()会求出返回值。

看来,这取决于返回对象还是原始类型。我希望new TestThree()的评估结果为TestThree {}(它的一个实例)。由TestThree创建的new实例会发生什么情况?

这背后的规则是什么?为什么?

function TestOne() {
    return 123;
}

new TestOne(); // TestOne {}
TestOne(); // 123

function TestTwo() {
}

new TestTwo(); // TestTwo {}
TestTwo(); // undefined

function TestThree() {
    return new TestOne();
}

new TestThree(); // TestOne {}
TestThree(); // TestOne {}

0 个答案:

没有答案