关键词:构造函数
非Object
function foo() {
this.getAge = function() {
console.log(this.age)
}
return 123; // 或Null/Undefined/String/Boolean/Symbol/BigInt类型的值, 或Array...
}
console.log(new foo()); // { getAge: function (){} }
// 说明return一个非Object类型的值会被忽略(除了Array), 而是new一个新对象
Object
function foo() {
this.getAge = function() {
console.log(this.age)
}
return {
age: 100
};
}
pp = new foo()
console.log(pp) {
age: 100
}
pp.getAge() // 出错
// 表明new foo() 返回的是return的对象本身, 没有new一个新对象
Function
function foo() {
return function () {
console.log("foo");
};
}
console.log(new foo()) // 函数本身
暂时就试出来了这么多