constructor
属性。这只是一个空的对象。但是,尽管如此,还是以某种方式仍然创建一个空的对象。怎么样?
new obj.constructor
在这里也创建了对象。在Chrome浏览器的控制台中,它显示为
function Constructor() {
this.name = 'Kira';
this.age = 35;
this.city = 'New-York';
};
Constructor.prototype = {};
let obj = new Constructor;
let obj2 = new obj.constructor;
console.log(obj2); //{}
function User(name) {
this.name = name;
}
User.prototype = {};
let user = new User('John');
let user2 = new user.constructor('Pete');
console.log(user2);
{}
constructor
Object
const o = {};
console.log("has constructor property:",
"constructor" in o);
console.log("constructor property is own:",
o.hasOwnProperty("constructor"));
console.log("constructor property comes from prototype:",
Object.getPrototypeOf(o).hasOwnProperty("constructor"));
console.log("constructor property is Object():",
o.constructor === Object);
打电话给
new obj.constructor
再次呼叫全局
new Object
function Foo() {};
Foo.prototype = {};
let obj = new Foo;
console.log(obj.constructor === Object);
console.log(obj.constructor === ({}).constructor);
let obj2 = new obj.constructor;
console.log(obj2); //{}
相同。而且,如果您传达具有对象包装器的值,则可以从构造函数中获得该包装器:
new user.constructor('Pete');