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 拾色器插件发布-jquery.icolor.js
Oct 20 Javascript
Javascript面象对象成员、共享成员变量实验
Nov 19 Javascript
JS滚轮事件onmousewheel使用介绍
Nov 01 Javascript
jQuery filter函数使用方法
May 19 Javascript
JavaScript实现信用卡校验方法
Apr 07 Javascript
JavaScript兼容性总结之获取非行间样式案例
Aug 07 Javascript
JS敏感词过滤代码
Dec 23 Javascript
jQuery扇形定时器插件pietimer使用方法详解
Jul 18 jQuery
Angular.js项目中使用gulp实现自动化构建以及压缩打包详解
Jul 19 Javascript
React Native基础入门之初步使用Flexbox布局
Jul 02 Javascript
vue router带参数页面刷新或回退参数消失的解决方法
Feb 27 Javascript
基于element-ui对话框el-dialog初始化的校验问题解决
Sep 11 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 ZipArchive压缩函数详解实例
2013/11/06 PHP
symfony表单与页面实现技巧
2015/01/26 PHP
PHP 进度条函数的简单实例
2017/09/19 PHP
学习js所必须要知道的一些
2007/03/07 Javascript
JavaScript中null与undefined分析
2009/07/25 Javascript
JavaScript window.setTimeout() 的详细用法
2009/11/04 Javascript
extjs两个tbar问题探讨
2013/08/08 Javascript
JavaScript中for..in循环陷阱介绍
2013/11/12 Javascript
一张表格告诉你windows.onload()与$(document).ready()的区别
2014/05/16 Javascript
javascript实现动态统计图开发实例
2015/11/21 Javascript
JS中关于事件处理函数名后面是否带括号的问题
2016/11/16 Javascript
jQuery分页插件jquery.pagination.js使用方法解析
2017/02/09 Javascript
js 监控iframe URL的变化实例代码
2017/07/12 Javascript
在Create React App中启用Sass和Less的方法示例
2019/01/16 Javascript
Javascript原生ajax请求代码实例
2020/02/20 Javascript
jquery实现简单每周轮换的日历
2020/09/10 jQuery
基于element-ui对话框el-dialog初始化的校验问题解决
2020/09/11 Javascript
[02:55]DOTA2英雄基础教程 发条技师
2013/12/04 DOTA
[28:57]EG vs VGJ.T 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/16 DOTA
Python 遍历子文件和所有子文件夹的代码实例
2016/12/21 Python
PyQt5每天必学之滑块控件QSlider
2018/04/20 Python
Python实现随机创建电话号码的方法示例
2018/12/07 Python
详解python中list的使用
2019/03/15 Python
Python基于requests库爬取网站信息
2020/03/02 Python
详解使用python3.7配置开发钉钉群自定义机器人(2020年新版攻略)
2020/04/01 Python
Jupyter notebook设置背景主题,字体大小及自动补全代码的操作
2020/04/13 Python
Numpy一维线性插值函数的用法
2020/04/22 Python
浅谈Python程序的错误:变量未定义
2020/06/02 Python
[原创]赚疯了!转手立赚800+?大佬的python「抢茅台脚本」使用教程
2021/01/12 Python
HTML5 表单验证失败的提示语问题
2017/07/13 HTML / CSS
花卉与景观设计系大学生求职信
2013/10/01 职场文书
学校十一活动方案
2014/02/01 职场文书
2014年小学教师工作自我评价
2014/09/22 职场文书
2015大学自主招生自荐信范文
2015/03/04 职场文书
2019送给家人们的中秋节祝福语
2019/08/15 职场文书
Golang连接并操作MySQL
2022/04/14 MySQL