如果我在构造函数中使用return语句,那么它不是一个实例吗?或者return语句是否使它成为常规函数?
function ClazzA() {};
ClazzA.prototype.go = 1;
function ClazzB() {
return {};
};
ClazzB.prototype.go = 1;
var a = new ClazzA();
var b = new ClazzB();
console.log(a.go); //1
console.log(a.constructor); //ClazzA()
console.log(a instanceof ClazzA); //true
console.log(b.go); //undefined
console.log(b.constructor); //Object()
console.log(b instanceof ClazzB); //false
答案 0 :(得分:2)
这就是new
运算符在JavaScript中的工作方式。如果构造函数返回一个对象引用,那么这就是new
表达式的值。构造函数创建并返回一个空(普通)对象,这就是分配给变量“b”的内容。