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 相关文章推荐
JQuery 文本框使用小结
May 22 Javascript
简易js代码实现计算器操作
Apr 15 Javascript
JavaScript实现简单图片翻转的方法
Apr 17 Javascript
Bootstrap打造一个左侧折叠菜单的系统模板(一)
May 17 Javascript
json的使用小结
Jun 08 Javascript
JavaScript职责链模式概述
Sep 17 Javascript
jquery hover 不停闪动问题的解决方法(亦为stop()的使用)
Feb 10 Javascript
详谈js中标准for循环与foreach(for in)的区别
Nov 02 Javascript
MVVM框架下实现分页功能示例
Jun 14 Javascript
vue+elementUI组件table实现前端分页功能
Nov 15 Javascript
vue中是怎样监听数组变化的
Oct 24 Javascript
微信小程序实现底部弹出模态框
Nov 18 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的FTP学习(二)
2006/10/09 PHP
php 高效率写法 推荐
2010/02/21 PHP
thinkphp实现图片上传功能分享
2014/03/04 PHP
PHP判断一个gif图片是否为动态图片的方法
2014/11/19 PHP
ThinkPHP中自定义错误页面和提示页面实例
2014/11/22 PHP
PHP const定义常量及global定义全局常量实例解析
2020/05/28 PHP
JavaScript中的其他对象
2008/01/16 Javascript
js 上传图片预览问题
2010/12/06 Javascript
jquery右下角弹出提示框示例代码
2013/10/08 Javascript
javaScript如何生成xmlhttp
2013/12/16 Javascript
基于javascript、ajax、memcache和PHP实现的简易在线聊天室
2015/02/03 Javascript
springMVC结合AjaxForm上传文件
2016/07/12 Javascript
使用jquery给指定的table动态添加一行、删除一行
2016/10/13 Javascript
js实现导航栏中英文切换效果
2017/01/16 Javascript
JS仿Base.js实现的继承示例
2017/04/07 Javascript
bootstrap日期控件问题(双日期、清空等问题解决)
2017/04/19 Javascript
Angularjs验证用户输入的字符串是否为日期时间
2017/06/01 Javascript
Angular实现的简单定时器功能示例
2017/12/28 Javascript
webpack的 rquire.context用法实现工程自动化的方法
2020/02/07 Javascript
深入理解 ES6中的 Reflect用法
2020/07/18 Javascript
在Python中使用M2Crypto模块实现AES加密的教程
2015/04/08 Python
Django学习笔记之ORM基础教程
2018/03/27 Python
python监控进程脚本
2018/04/12 Python
Pandas 解决dataframe的一列进行向下顺移问题
2019/12/27 Python
Python预测2020高考分数和录取情况
2020/07/08 Python
python如何快速拼接字符串
2020/10/28 Python
Python Pandas list列表数据列拆分成多行的方法实现
2020/12/14 Python
美国高端医师级美容产品电商:BeautifiedYou.com
2017/04/17 全球购物
葡萄牙语专业个人求职信
2013/12/10 职场文书
致百米运动员广播稿
2014/01/29 职场文书
商学院大学生求职的自我评价
2014/03/12 职场文书
励志广播稿300字(5篇)
2014/09/15 职场文书
夫妻忠诚协议书范本
2014/11/17 职场文书
企业投资意向书
2015/05/09 职场文书
大学毕业典礼致辞
2015/07/29 职场文书
教师信息技术学习心得体会
2016/01/21 职场文书