Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果函数返回一个对象,它就不能在JS中充当构造函数。我的假设正确吗_Javascript_Function_Return_New Operator - Fatal编程技术网

Javascript 如果函数返回一个对象,它就不能在JS中充当构造函数。我的假设正确吗

Javascript 如果函数返回一个对象,它就不能在JS中充当构造函数。我的假设正确吗,javascript,function,return,new-operator,Javascript,Function,Return,New Operator,下面的代码演示了相同的情况 功能测试(x){ 这个.x=x; 返回{}; } 函数test1(x){ 这个.x=x; } console.log(新测试(1.x);//未定义日志 console.log(新的test1(1.x);//日志1 如果函数不返回自己的对象,则返回此 在第一个函数中,您将返回一个{},因此当您访问 新测试(x).x 您实际上正在访问{}.x,它是未定义的 而在你的第二个函数中 newtest(x).x实际上正在访问函数test中添加的x属性。请在发布之前尝试格式化代码

下面的代码演示了相同的情况

功能测试(x){
这个.x=x;
返回{};
}
函数test1(x){
这个.x=x;
}
console.log(新测试(1.x);//未定义日志
console.log(新的test1(1.x);//日志1
如果函数不返回自己的对象,则返回此

在第一个函数中,您将返回一个
{}
,因此当您访问

新测试(x).x

您实际上正在访问
{}.x
,它是
未定义的

而在你的第二个函数中


newtest(x).x
实际上正在访问函数
test

中添加的
x
属性。请在发布之前尝试格式化代码-甚至还有一个预览框,您返回的是
{}
来自第一个函数,因此它肯定会给您提供undefinedit仍然是一个构造函数。我感到困惑是因为两件事:1)如果我返回一个数字,代码会记录1 2)我的印象是返回一个对象不会对对象创建产生影响。@SPS
new
在您不从功能