javascript——原型创建对象2

<!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>js01_hello</title>
	<meta name="author" content="Administrator" />
	<script type="text/javascript">
	/**
	 *基于原型的创建虽然可以有效的完成封装,但是依然有一些问题
	 * 1、无法通过构造函数来设置属性值
	 * 2、当属性中有引用类型变量是,可能存在变量值重复
	 */
	function Person(){
		
	}
	Person.prototype = {
		constructor:Person,
		name:"Leon",
		age:30,
		friends:["Ada","Chris"],
		say:function() {
			alert(this.name+"["+this.friends+"]");
		}
	}
	var p1 = new Person();
	p1.name = "John";
	p1.say();//john[ada,chris]
	//会在原型中找friends,所以Mike是在原型中增加的
	p1.friends.push("Mike");//为p1增加了一个朋友
	var p2 = new Person();
	//此时原型中就多了一个Mike,这就是原型所带来的第二个问题
	p2.say();//leon ada chris mike
	</script>
</head>
<body>
</body>
</html>

  

posted on 2015-02-09 14:43  aicpcode  阅读(95)  评论(0编辑  收藏  举报

导航