<script>
/**
* 以下方式将会重写原型
* 由于原型重写,而且没有通过Person.prototype来指定
* 此时的constructor不会再指向Person而是指向Object
* 如果constructor真的比较重要,可以在json中说明原型的指向
*/
function Person() {};
var p1 = new Person();
Person.prototype.sayHi = function() {
alert(this.name + ":hi");
}
/**
* 重点注意!!!!!
* 如果把重写放到在new Person之后,注意内存模型,原型重写的问题。
*/
Person.prototype = {
constructor:Person,
name:"Jack",
age:25,
say:function() {
alert(this.name + ", " + this.age);
}
};
p1.sayHi(); // 不会报错,但是没有this.name
var p2 = new Person();
//p2.sayHi(); // 此时p2没有sayHi,所以会报错
p2.say();
p1.say();
</script>
JavaScript原型重写的问题注意
最新推荐文章于 2024-02-09 07:45:00 发布