Javascript 面向对象 对象(Object)


Posted in Javascript onMay 13, 2010

javascript中的对象创建声明:
var obj = {}; 或者 var obj = new Object(); 
为对象加入属性,方法:
//=====第一种写法====================================
obj.name = '小明'; //为对象加属性
obj.updateName = function(name){//为对象定义updateName方法
this.name = name;
}
alert(obj.name);
obj.updateName("小强"); //调用updateName修改obj对象的name属性值
alert(obj['name']);
第一次显示结果为:小明
第二次显示结果为:小强
//=====第二种写法====================================
obj['name'] = '张三'; //为对象加属性
obj['updateName'] = function(name){//为对象定义updateName方法
obj['name'] =name;
}; 
alert(obj.name);
obj.updateName('李四'); //调用updateName修改obj对象的name属性值
alert(obj['name']);
第一次显示结果为:张三
第二次显示结果为:李四

//=====第三种写法==================================== 
var obj = { 
name: '王五', //为对象加属性 
updateName: function(name){//为对象定义updateName方法 
this.name = name;  
} 
}; 
alert(obj .name); 
obj.updateName("赵六"); //调用updateName修改obj对象的name属性值 
alert(obj .name);

第一次显示结果为:王五
第二次显示结果为:赵六
//=====分析=====================================
第一种写法是最普通的对象写法,因为javascript是动态语言,与Java和.Net不同,
在程序运行并创建对象后,还可以对该对象的内部结构进行修改,
比如添加属性和方法(java和.net中的反射机制做不到这点)。
(a): var obj = {} || new Object();
(b):obj.name = "张三";
(c):obj.updateName = function(name){ this.name = name};
当程序执行(a) 后,便创建了一个空对象(不包含任何方法和属性)obj,
当程序执行(b) 后,改变了obj的内部结构,加了一个属性name,
当程序执行(c) 后,改变了obj的内部结构,加了一个方法updateName ,
而这都是在运行的时候完成的动作
第二种写法像数组,但绝不是数组,区分是不是数组可以如此判断:
if(typeof(obj.length) == "undefined") { 
alert("obj不是数组,数组都有length属性!"); 
}else{ 
alert("obj是数组!"); 
}

第二种写法更像一种数据结构:map ,如:obj[key] = value;
key是字符串,value可以是任何类型,变量,对象,函数等。
可以通过这种方式遍历对象内部结构:
for(var key in obj) 
{ 
alert(key); 
var value = obj[key]; 
alert(value); 
}

通过alert可以显示出你所定义的内容。
第三种写法一看就是map的内部结构了,一个对象,内部完全用key : value键值对方式表示
JSON对象也是这种结构,只要对map或者JSON对象有所熟悉的就很容易理解了。
Javascript 相关文章推荐
前后台交互过程中json格式如何解析以及如何生成
Dec 26 Javascript
jquery load事件(callback/data)使用方法及注意事项
Feb 06 Javascript
在javascript中对于DOM的加强
Apr 11 Javascript
jquery图片不完全按比例自动缩小的简单代码
Jul 29 Javascript
JavaScript DOM 编程艺术(第2版)读书笔记(JavaScript的最佳实践)
Oct 01 Javascript
写JQuery插件的基本知识
Nov 25 Javascript
jQuery选择器querySelector的使用指南
Jan 23 Javascript
jquery实现全选和全不选功能效果的实现代码【推荐】
May 05 Javascript
connection reset by peer问题总结及解决方案
Oct 21 Javascript
AngularJS辅助库browserTrigger用法示例
Nov 03 Javascript
Angularjs单选框相关的示例代码
Aug 17 Javascript
微信小程序实现卡片层叠滑动效果
Jun 21 Javascript
Javascript 面向对象 命名空间
May 13 #Javascript
javascript 面向对象 function类
May 13 #Javascript
该如何加载google-analytics(或其他第三方)的JS
May 13 #Javascript
Javascript 面向对象 继承
May 13 #Javascript
Javascript 面向对象 重载
May 13 #Javascript
JavaScript 面向对象的 私有成员和公开成员
May 13 #Javascript
限制文本框输入N个字符的js代码
May 13 #Javascript
You might like
如何获得PHP相关资料
2006/10/09 PHP
PHP采用自定义函数实现遍历目录下所有文件的方法
2014/08/19 PHP
PHP访问Google Search API的方法
2015/03/05 PHP
PHP实现时间比较和时间差计算的方法示例
2017/07/24 PHP
jquery中trigger()无法触发hover事件的解决方法
2015/05/07 Javascript
在JavaScript中使用对数Math.log()方法的教程
2015/06/15 Javascript
javascript设计模式--策略模式之输入验证
2015/11/27 Javascript
Javascript中数组去重与拍平的方法示例
2017/02/03 Javascript
vue项目中使用百度地图的方法
2018/06/08 Javascript
Angularjs 根据一个select的值去设置另一个select的值方法
2018/08/13 Javascript
详解jquery和vue对比
2019/04/16 jQuery
Jquery Fade用法详解
2020/11/06 jQuery
简单了解Python3里的一些新特性
2019/07/13 Python
python切片(获取一个子列表(数组))详解
2019/08/09 Python
Python实现语音识别和语音合成功能
2019/09/20 Python
Python使用selenium + headless chrome获取网页内容的方法示例
2019/10/16 Python
基于python监控程序是否关闭
2020/01/14 Python
python集成开发环境配置(pycharm)
2020/02/14 Python
python requests库的使用
2021/01/06 Python
Python入门基础之数字字符串与列表
2021/02/01 Python
Cecil Mode法国在线商店:女性时尚
2021/01/08 全球购物
电大自我鉴定范文
2013/10/01 职场文书
经典优秀毕业生求职信范文分享
2013/12/18 职场文书
幼儿园教师工作感言
2014/02/15 职场文书
舞蹈毕业生的自我评价
2014/03/05 职场文书
2014年职称评定工作总结
2014/11/26 职场文书
会计求职自荐信
2015/03/26 职场文书
2015年端午节活动策划书
2015/05/05 职场文书
2015年董事长秘书工作总结
2015/07/23 职场文书
用基于python的appium爬取b站直播消费记录
2021/04/17 Python
k-means & DBSCAN 总结
2021/04/27 Python
python中对列表的删除和添加方法详解
2022/02/24 Python
Python学习之os包使用教程详解
2022/03/21 Python
python游戏开发Pygame框架
2022/04/22 Python
一文搞懂PHP中的抽象类和接口
2022/05/25 PHP
MySQL count(*)统计总数问题汇总
2022/09/23 MySQL