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