稻草网

JS实例中constructor的问题

今天看到一篇文章,里面说JS的实例里有个constructor属性指向构造函数,我记得当时读JS高程的时候原型那幅图里实例和构造函数是没有连接的,以为是自己记错了,又拿出来翻了翻,148页确实没有连接,而且下面还明确指出了“实例与构造函数没有直接的关系”。

但是打印实例.constructor确实输出构造函数,于是我做了下面的测试

function Foo(){

}

var foo=new Foo();

console.log(foo.constructor === Foo.prototype.constructor);// true

console.log(!foo.hasOwnProperty("constructor") && "constructor" in foo);// true

结果表明实例中并没有constructor属性,实例.constructor能访问的构造函数是因为沿着原型链访问的原型中的constructor属性

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注