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)我的印象是返回一个对象不会对对象创建产生影响。@SPSnew
在您不从功能