Javascript 为什么从构造函数返回时原型未定义?

Javascript 为什么从构造函数返回时原型未定义?,javascript,function,constructor,return,instance,Javascript,Function,Constructor,Return,Instance,如果我在构造函数中使用return语句,它不被视为实例吗?或者return语句使其成为常规函数 函数ClazzA(){}; ClazzA.prototype.go=1; 函数ClazzB(){ 返回{}; }; ClazzB.prototype.go=1; var a=新的ClazzA(); var b=新的ClazzB(); console.log(a.go)//1. console.log(a.constructor)//克拉扎() log(ClazzA的一个实例)//真的 控制台日志(b.

如果我在构造函数中使用return语句,它不被视为实例吗?或者return语句使其成为常规函数

函数ClazzA(){};
ClazzA.prototype.go=1;
函数ClazzB(){
返回{};
};
ClazzB.prototype.go=1;
var a=新的ClazzA();
var b=新的ClazzB();
console.log(a.go)//1.
console.log(a.constructor)//克拉扎()
log(ClazzA的一个实例)//真的
控制台日志(b.go)//未定义
console.log(b.constructor)//对象()
console.log(ClazzB的b实例)//假的

这就是新的
操作符在JavaScript中的工作方式。如果构造函数返回一个对象引用,那么这就是
new
表达式的值。构造函数创建并返回一个空(普通)对象,因此这就是分配给变量“b”的对象。

从构造函数返回空对象。若您返回数字或字符串,它将按预期工作。请参阅说明,若构造函数返回新的object@YHarry请不要通过编辑问题中的后续问题来拖拉问题。你可以在回答下的评论中要求澄清,但如果他们想提供进一步的帮助,或者你需要自己解决问题,则由此人决定。