js高级程序设计中关于创建对象的一点问题

function Person(){

}


Person.prototype ={


name: "Nicholas",

age:29,

job: "software engineer",

sayName : function(){

    alert(this.name);

}

};

var friend = new Person();


我们将Person.prototype设置为等于一个以对象字面量形式创建的新对象。最终结果相同,但有一个例外:constructor属性不再指向Person了。前面曾经介绍过,每创建一个函数,就会同时创建他的prototype对象,这个对象也会自动获得constructor属性,而我们这里使用的语法,而我们在这里使用的语法,本质上完全重写了默认的 prototype 对象,因此 constructor 属性也就变成了新对象的 constructor 属性(指向 Object 构造函数),不再指向 Person 函数。此时,尽管 instanceof操作符还能返回正确的结果,但通过 constructor 已经无法确定对象的类型了。


这是书中的一段话,可以说完全没看懂,这个constructor到底指向啥,一开始,constructor指向Person,后来为什么又指向Object了呢。。


小唯快跑啊
浏览 403回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript