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 相关文章推荐
给页面渲染时间加速 干掉Dom Level 0 Event
Dec 19 Javascript
javascript游戏开发之《三国志曹操传》零部件开发(一)让静态人物动起来
Jan 23 Javascript
JavaScript编程学习技巧汇总
Feb 21 Javascript
JS中split()用法(将字符串按指定符号分割成数组)
Oct 24 Javascript
使用snowfall.jquery.js实现爱心满屏飞的效果
Jan 05 Javascript
AngularJs每天学习之总体介绍
Aug 07 Javascript
在一般处理程序(ashx)中弹出js提示语
Aug 16 Javascript
微信小程序wx.getImageInfo()如何获取图片信息
Jan 26 Javascript
js捆绑TypeScript声明文件的方法教程
Apr 13 Javascript
JS数组去重常用方法实例小结【4种方法】
May 28 Javascript
vue自定义一个v-model的实现代码
Jun 21 Javascript
Vue中图片Src使用变量的方法
Oct 30 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
解密ThinkPHP3.1.2版本之独立分组功能应用
2014/06/19 PHP
PHP生成条形码大揭秘
2015/09/24 PHP
判断页面是关闭还是刷新的js代码
2007/01/28 Javascript
JavaScript为对象原型prototype添加属性的两种方式
2010/08/01 Javascript
JavaScript 一道字符串分解的题目
2011/08/03 Javascript
修复IE9&safari 的sort方法
2011/10/21 Javascript
你必须知道的JavaScript 变量命名规则详解
2013/05/07 Javascript
js setTimeout opener的用法示例详解
2013/10/23 Javascript
通过隐藏iframe实现文件下载的js方法介绍
2014/02/26 Javascript
jQuery将所有被选中的checkbox某个属性值连接成字符串的方法
2015/01/24 Javascript
谈谈JavaScript中function多重理解
2015/08/28 Javascript
jQuery中ajax的load()与post()方法实例详解
2016/01/05 Javascript
JS SetInterval 代码实现页面轮询
2017/08/11 Javascript
微信小程序chooseImage的用法(从本地相册选择图片或使用相机拍照)
2018/08/22 Javascript
Vue2 监听属性改变watch的实例代码
2018/08/27 Javascript
手淘flexible.js框架使用和源代码讲解小结
2018/10/15 Javascript
mpvue 页面预加载新增preLoad生命周期的两种方式
2019/10/17 Javascript
python中的列表推导浅析
2014/04/26 Python
python pandas dataframe 按列或者按行合并的方法
2018/04/12 Python
Python实现动态添加属性和方法操作示例
2018/07/25 Python
python实现停车管理系统
2018/11/30 Python
对python内置map和six.moves.map的区别详解
2018/12/19 Python
python实现自动化报表功能(Oracle/plsql/Excel/多线程)
2019/12/02 Python
解决pytorch报错:AssertionError: Invalid device id的问题
2020/01/10 Python
英国专业美容产品在线:Mylee(从指甲到脱毛)
2020/07/06 全球购物
精彩广告词大全
2014/03/19 职场文书
2014国庆节演讲稿:祖国在我心中(400字)
2014/09/25 职场文书
机关作风建设整改方案
2014/10/27 职场文书
党的群众路线整改落实情况汇报
2014/10/28 职场文书
小学生班干部竞选稿
2015/11/20 职场文书
2016廉政教育学习心得体会
2016/01/25 职场文书
六种css3实现的边框过渡效果
2021/04/22 HTML / CSS
教你如何使用Python实现二叉树结构及三种遍历
2021/06/18 Python
详解Go语言中Get/Post请求测试
2022/06/01 Golang
向Spring IOC 容器动态注册bean实现方式
2022/07/15 Java/Android