Javascript新运算符*始终*覆盖返回值?

Javascript新运算符*始终*覆盖返回值?,javascript,Javascript,根据关于新操作员工作方式的这些规范: 构造函数返回的对象成为 全新的表达方式。如果构造函数没有 显式返回一个对象,使用在步骤1中创建的对象 相反(通常构造函数不返回值,但它们可以 如果要覆盖普通对象创建,请选择这样做 过程。) 我相信,如果没有提供返回值,新操作符只会覆盖返回值。然而,它似乎总是这样,你永远无法推翻它 比如说 function test() { return 1; } new test() // returns {} and not 1 有人能举一个不属于这种情况的例子吗,比如

根据关于新操作员工作方式的这些规范:

构造函数返回的对象成为 全新的表达方式。如果构造函数没有 显式返回一个对象,使用在步骤1中创建的对象 相反(通常构造函数不返回值,但它们可以 如果要覆盖普通对象创建,请选择这样做 过程。)

我相信,如果没有提供返回值,新操作符只会覆盖返回值。然而,它似乎总是这样,你永远无法推翻它

比如说

function test() { return 1; }
new test() // returns {} and not 1

有人能举一个不属于这种情况的例子吗,比如他们在文档中提到的

只能使用非原语值覆盖结果

原始的

function test(){this.bar='42';返回1;}
console.log(new test())/{}
此外,我们还可以使用
new
基元对象和函数从使用
new
运算符调用的函数中访问基元值

具有适当的
基本对象
功能测试(){
this.bar='42';
返回新号码(1);
}
const num=新测试()
console.log(num.valueOf())//1
console.log(num+0)//1