<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>js原型的重写</title>
<meta name="author" content="ASUS" />
<!-- Date: 2014-11-14 -->
<script type="text/javascript">
function Person(){
}
/*
*使用如下方式来编写代码,当属性和方法特别多时,编写起来不是很方便,可以通过json的格式
* 来编写
*/
// Person.prototype.name = "leon";
// Person.prototype.age = 20;
// Person.prototype.say = function() {
// alert(this.name+","+this.age);
// }
var p1 = new Person();
Person.prototype.say = function() {
alert(this.name+","+this.age);
}
/*
* 以下方式将会重写原型
* 由于原型重写,而且没有通过Person.prototype来指定
* 此时的constructor不会再指向Person而是指向Object
* 如果constructor真的比较重要,可以在json中说明原型的指向
*/
//如果把重写放在new Person之后 就存在原型重写的问题
Person.prototype = {
constructor:Person,//手动指定constructor
name:"leon",
age : 22,
say : function(){
alert(this.name+","+this.age);
}
}
p1.say();
var p2 = new Person();
p2.say();
</script>
</head>
<body>
</body>
</html>
"http://www.w3.org/TR/html4/strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>js原型的重写</title>
<meta name="author" content="ASUS" />
<!-- Date: 2014-11-14 -->
<script type="text/javascript">
function Person(){
}
/*
*使用如下方式来编写代码,当属性和方法特别多时,编写起来不是很方便,可以通过json的格式
* 来编写
*/
// Person.prototype.name = "leon";
// Person.prototype.age = 20;
// Person.prototype.say = function() {
// alert(this.name+","+this.age);
// }
var p1 = new Person();
Person.prototype.say = function() {
alert(this.name+","+this.age);
}
/*
* 以下方式将会重写原型
* 由于原型重写,而且没有通过Person.prototype来指定
* 此时的constructor不会再指向Person而是指向Object
* 如果constructor真的比较重要,可以在json中说明原型的指向
*/
//如果把重写放在new Person之后 就存在原型重写的问题
Person.prototype = {
constructor:Person,//手动指定constructor
name:"leon",
age : 22,
say : function(){
alert(this.name+","+this.age);
}
}
p1.say();
var p2 = new Person();
p2.say();
</script>
</head>
<body>
</body>
</html>