js对象创建的方式及其优势和不足5
2014-11-13 23:14
260 查看
<!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对象的创建5 基于原型的方式</title>
<meta name="author" content="ASUS" />
<!-- Date: 2014-11-13 -->
<script type="text/javascript">
/*
*基于原型的创建方式可以有效的完成封装,但是依然有缺陷
* 1 无法通过构造函数来设置属性的值
* 2 当属性中有引用类型的变量时,可能存在变量值重复
*/
function Person(){
}
Person.prototype = {
name:"gui",
age:22,
friends:["aa","bb"],
sayHello:function(){
alert(this.name+","+this.age+"["+this.friends+"]");
}
}
var p1 = new Person();
p1.name="newgui";
var p2 = new Person();
//alert(p1.sayHello==p2.sayHello);//true
//会在p1的原型中找到friends并为它添加cc
p1.friends.push("cc");
p1.sayHello(); //[aa,bb,cc]
//此时 原型中就增加了cc 这就是原型带来的第二个问题
p2.sayHello();//[aa,bb,cc]
</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对象的创建5 基于原型的方式</title>
<meta name="author" content="ASUS" />
<!-- Date: 2014-11-13 -->
<script type="text/javascript">
/*
*基于原型的创建方式可以有效的完成封装,但是依然有缺陷
* 1 无法通过构造函数来设置属性的值
* 2 当属性中有引用类型的变量时,可能存在变量值重复
*/
function Person(){
}
Person.prototype = {
name:"gui",
age:22,
friends:["aa","bb"],
sayHello:function(){
alert(this.name+","+this.age+"["+this.friends+"]");
}
}
var p1 = new Person();
p1.name="newgui";
var p2 = new Person();
//alert(p1.sayHello==p2.sayHello);//true
//会在p1的原型中找到friends并为它添加cc
p1.friends.push("cc");
p1.sayHello(); //[aa,bb,cc]
//此时 原型中就增加了cc 这就是原型带来的第二个问题
p2.sayHello();//[aa,bb,cc]
</script>
</head>
<body>
</body>
</html>
相关文章推荐
- js对象创建的方式及其优势和不足7
- js对象创建的方式及其优势和不足6
- js对象创建的方式及其优势和不足4
- js对象创建的方式及其优势和不足2
- js对象创建的方式及其优势和不足3
- js中对象创建方式及其优势和不足1
- JS中定义对象方式四: 使用原型(prototype)方式创建对象之二(弊端及其改进)
- JS中定义对象方式二: 使用工厂方式创建对象(传递参数,及其改进方法)
- JS中定义对象方式三: 使用构造函数方式创建对象
- js对象创建方式
- webkit的js对象扩展(二)——binding方式创建自定义对象(多实例)
- javascript学习(十五):js中对象的常用的几种创建方式
- webkit的js对象扩展(二)——binding方式创建自定义对象(多实例)
- js创建对象的几种常用方式
- js创建对象的几种常用方式小结(推荐)
- JS中定义对象方式五: 使用动态原型方式创建对象
- 韩顺平_轻松搞定网页设计(html+css+javascript)_第30讲_类和对象细节_创建对象的几种方式_js对象内存分析_学习笔记_源代码图解_PPT文档整理
- 第30讲 类和对象细节 创建对象的几种方式 js对象内存分析
- js创建对象的几种常用方式小结(推荐)
- js创建对象的几种常用方式