js中的对象封装
用json封装,用构造函数封装,用原型函数进行封装,原型函数最节省内存,将大部分相同的属性或方法放在静态区域中,创建对象时,如果对象属性与默认的不一样,则可以在该对象中覆盖静态区域中的值,不影响其他对象的属性。
<html>
<head>
<title>函数的封装</title>
<script type="text/javascript">
// 用json创建对象
// 特点: 1,生成麻烦 2,生成出来的对象之间没有什么关联
var iphone1={'pinpai':'苹果','color':'黑色','weight':'100g','msg':function(){alert('发短信')}};
var iphone2={'pinpai':'苹果','color':'黑色','weight':'102g','msg':function(){alert('发短信')}};
var iphone3={'pinpai':'苹果','color':'黑色','weight':'104g','msg':function(){alert('发短信')}}; // 用构造函数封装对象
//特点:1,创建过程比较简单,2,浪费内存 function shouji(zhongliang){
this.pinpai='苹果';
this.color='黑色';
this.weight=zhongliang;
this.msg=function(){alert('发短信')}
}
var iphone1=new shouji('100g');
var iphone2=new shouji('103g');
var iphone3=new shouji('104g'); //用原型方式封装对象
//省内存
function shouji(zhongliang){
this.weight=zhongliang;
}
shouji.prototype.pinpai='苹果';//将pinpai,color属性添加到静态区域中,任何对象都可以共享,如果个别对象属性不同,则可以把个别对象的属性改一下,不影响其他对象的属性
shouji.prototype.color='黑色';
var iphone1=new shouji('100g');
var iphone2=new shouji('103g');
var iphone3=new shouji('104g'); </script>
</head>
<body> </body>
</html>
js中的对象封装的更多相关文章
- js中判断对象具体类型
		大家可能知道js中判断对象类型可以用typeof来判断.看下面的情况 <script> alert(typeof 1);//number alert(typeof "2" ... 
- js中推断对象详细类型
		大家可能知道js中推断对象类型能够用typeof来推断. 看以下的情况 <script> alert(typeof 1);//number alert(typeof "2&quo ... 
- 浅解析js中的对象
		浅解析js中的对象 原文网址:http://www.cnblogs.com/foodoir/p/5971686.html,转载请注明出处. 前面的话: 说到对象,我首先想到的是每到过年过节见长辈的时候 ... 
- js中XMLHttpRequest对象实现GET、POST异步传输
		js中XMLHttpRequest对象实现GET.POST异步传输 /* * 统一XHR接口 */ function createXHR() { // IE7+,Firefox, Opera, Chr ... 
- JavaScript学习12 JS中定义对象的几种方式
		JavaScript学习12 JS中定义对象的几种方式 JavaScript中没有类的概念,只有对象. 在JavaScript中定义对象可以采用以下几种方式: 1.基于已有对象扩充其属性和方法 2.工 ... 
- JavaScript学习12 JS中定义对象的几种方式【转】
		avaScript学习12 JS中定义对象的几种方式 转自: http://www.cnblogs.com/mengdd/p/3697255.html JavaScript中没有类的概念,只有对象. ... 
- JS中有关对象的继承以及实例化、浅拷贝深拷贝的奥秘
		一.属性的归属问题 JS对象中定义的属性和方法如果不是挂在原型链上的方法和属性(直接通过如类似x的方式进行定义)都只是在该对象上,对原型链上的没有影响.对于所有实例共用的方法可直接定义在原型链上这样实 ... 
- JS中定义对象和集合
		在js中定义对象: 方式一: var obj = {}; obj['a']=1; obj['b']=2; 方式二: var obj=new Object(); obj.a=1; obj.b=2; 在j ... 
- Js中Map对象的使用
		Js中Map对象的使用 1.定义 键/值对的集合. 2.语法 mapObj = new Map() 3.备注 集合中的键和值可以是任何类型.如果使用现有密钥向集合添加值,则新值会替换旧值. 4.属性 ... 
随机推荐
- Guid 的几种形式
			Guid.NewGuid().ToString()得几种格式显示 1.Guid.NewGuid().ToString("N") 结果为: 38bddf48f43c485 ... 
- 看懂SqlServer查询计划
			看懂SqlServer查询计划 阅读目录 开始 SQL Server 查找记录的方法 SQL Server Join 方式 更具体执行过程 索引统计信息:查询计划的选择依据 优化视图查询 推荐阅读-M ... 
- SVN Working Copy xxx locked 并 cleanup失败之解
			从cmd 进入到 workspace文件夹 执行 上边的命令 --------------------------------------------------------------------- ... 
- yarn队列提交spark任务权限控制
			转载请注明出处:http://www.cnblogs.com/xiaodf/ 1 CapacityScheduler 1.1 模型介绍 1.2 资源分配相关参数 1.3 限制应用程序数目相关参数 1. ... 
- Codeforces Round #335 (Div. 2)B. Testing Robots解题报告
			B. Testin ... 
- c++ 派生类向基类转换的可访问性
			对于c++面向对象一直很疑惑,这次决定下功夫把它弄明白 一.派生类和基类之间的类型转换 首先理解,派生类含有基类的所有成分,只不过有些就算在派生类的成员函数也不能访问而已. (1)派生类和基类的自动转 ... 
- spoj 8222 Substrings(后缀自动机+DP)
			[题目链接] http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=28005 [题意] 给一个字符串S,令F(x)表示S的所有长度为 ... 
- grep环境变量常用配置
			vim ~/.bashrc GREP_OPTIONS="-irns --exclude-dir=output --exclude=tags --exclude=*.files" 然 ... 
- Linux vim的一些命令
			一.vi/vim的多行注释及取消注释 1.多行注释 (1) 进入命令行模式,按ctrl + v进入 visual block模式,然后按j, 或者k选中多行,把需要注释的行标记起来 (2) 按大写字母 ... 
- java中String、StringBuilder、StringBuffer三者的区别
			在Java项目开发中,字符串是最长使用的数据类型,而有关字符串的String.StringBuilder.StringBuffer三者又常常让人分不清楚什么时候该使用哪个. 特此整理一下. Strin ... 
