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 相关文章推荐
javascript中的一些注意事项 更新中
Dec 06 Javascript
js 通过html()及text()方法获取并设置p标签的显示值
May 14 Javascript
angularjs的一些优化小技巧
Dec 06 Javascript
在for循环中length值是否需要缓存
Jul 27 Javascript
Vue.js第四天学习笔记(组件)
Dec 02 Javascript
textarea 在浏览器中固定大小和禁止拖动的实现方法
Dec 03 Javascript
深入探究node之Transform
Jul 20 Javascript
angular4模块中给标签添加背景图的实现方法
Sep 15 Javascript
详解Node.js利用node-git-server快速搭建git服务器
Sep 27 Javascript
react-native组件中NavigatorIOS和ListView结合使用的方法
Sep 30 Javascript
vue 组件中使用 transition 和 transition-group实现过渡动画
Jul 09 Javascript
Node.js web 应用如何封装到Docker容器中
Sep 01 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
web站点获取用户IP的安全方法 HTTP_X_FORWARDED_FOR检验
2013/06/01 PHP
PHP实现的带超时功能get_headers函数
2015/02/10 PHP
Laravel配置全局公共函数的方法步骤
2019/05/09 PHP
JavaScript 布尔操作符解析  && || !
2012/08/10 Javascript
JS实现拖动示例代码
2013/11/01 Javascript
JavaScript禁止页面操作的示例代码
2013/12/17 Javascript
利用js实现在浏览器状态栏显示访问者在本页停留的时间
2013/12/29 Javascript
js replace替换所有匹配的字符串
2014/02/13 Javascript
简介JavaScript中valueOf()方法的使用
2015/06/05 Javascript
JavaScript的React Web库的理念剖析及基础上手指南
2016/05/10 Javascript
ionic js 模型 $ionicModal 可以遮住用户主界面的内容框
2016/06/06 Javascript
JavaScript函数节流概念与用法实例详解
2016/06/20 Javascript
javascript时间差插件分享
2016/07/18 Javascript
基于JavaScript实现百度搜索框效果
2020/06/28 Javascript
vue实现nav导航栏的方法
2017/12/13 Javascript
详解实现一个通用的“划词高亮”在线笔记功能
2019/04/23 Javascript
vue添加自定义右键菜单的完整实例
2020/12/08 Vue.js
Python 2与Python 3版本和编码的对比
2017/02/14 Python
python anaconda 安装 环境变量 升级 以及特殊库安装的方法
2017/06/21 Python
python去掉空白行的多种实现代码
2018/03/19 Python
如何利用Python分析出微信朋友男女统计图
2019/01/25 Python
python 使用turtule绘制递归图形(螺旋、二叉树、谢尔宾斯基三角形)
2019/05/30 Python
python中update的基本使用方法详解
2019/07/17 Python
django框架ModelForm组件用法详解
2019/12/11 Python
python分别打包出32位和64位应用程序
2020/02/18 Python
什么是Python变量作用域
2020/06/03 Python
通过实例简单了解python yield使用方法
2020/08/06 Python
python Gabor滤波器讲解
2020/10/26 Python
科室工作的个人自我评价
2013/10/30 职场文书
汽车专业学生自我评价
2014/01/19 职场文书
企业厂务公开实施方案
2014/03/26 职场文书
大学毕业生管理学求职信
2014/09/01 职场文书
建设工程授权委托书
2014/09/22 职场文书
2014财务年度工作总结
2014/11/11 职场文书
2019大学毕业晚会主持词
2019/06/21 职场文书
MySQL子查询中order by不生效问题的解决方法
2021/08/02 MySQL