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的前台操作和后台操作实现代码
Jan 20 Javascript
jqTransform form表单美化插件使用方法
Jul 05 Javascript
全面理解面向对象的 JavaScript(来自ibm)
Nov 10 Javascript
javascript实现的一个随机点名功能
Aug 26 Javascript
Jquery判断radio、selelct、checkbox是否选中及获取选中值方法总结
Apr 15 Javascript
js实现C#的StringBuilder效果完整实例
Dec 22 Javascript
详解Backbone.js框架中的模型Model与其集合collection
May 05 Javascript
Bootstrap模态窗口源码解析
Feb 08 Javascript
JS判断时间段的实现代码
Jun 14 Javascript
angular4模块中给标签添加背景图的实现方法
Sep 15 Javascript
layui实现数据表格自定义数据项
Oct 26 Javascript
微信小程序scroll-view锚点链接滚动跳转功能
Dec 12 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编码规范
2015/09/28 PHP
php版微信js-sdk支付接口类用法示例
2016/10/12 PHP
PHP闭包定义与使用简单示例
2018/04/13 PHP
PHP实现的文件浏览器功能简单示例
2019/09/12 PHP
使用laravel和ajax实现整个页面无刷新的操作方法
2019/10/03 PHP
50个优秀经典PHP算法大集合 附源码
2020/08/26 PHP
php析构函数的具体用法小结
2014/03/11 Javascript
jquery的ajax异步请求接收返回json数据实例
2014/06/16 Javascript
Javascript中封装window.open解决不兼容问题
2014/09/28 Javascript
详细分析JavaScript函数定义
2015/07/16 Javascript
jquery图片倾斜层叠切换特效代码分享
2015/08/27 Javascript
Jquery easyui 实现动态树
2015/11/17 Javascript
jquery 动态合并单元格的实现方法
2016/08/26 Javascript
Node.js 实现简单小说爬虫实例
2016/11/18 Javascript
原生JS实现九宫格抽奖效果
2017/04/01 Javascript
jQuery中hover方法搭配css的hover选择器,实现选中元素突出显示方法
2017/05/08 jQuery
vue-cli webpack 开发环境跨域详解
2017/05/18 Javascript
详解基于vue-router的动态权限控制实现方案
2017/09/28 Javascript
AngularJS使用ng-repeat遍历二维数组元素的方法详解
2017/11/11 Javascript
浅谈React深度编程之受控组件与非受控组件
2017/12/26 Javascript
在JavaScript中如何访问暂未存在的嵌套对象
2019/06/18 Javascript
vue自定义标签和单页面多路由的实现代码
2020/05/03 Javascript
浅析我对JS延迟异步脚本的思考
2020/10/12 Javascript
[01:03:22]LGD vs OG 2018国际邀请赛淘汰赛BO3 第一场 8.25
2018/08/29 DOTA
从Python的源码来解析Python下的freeblock
2015/05/11 Python
对pandas中to_dict的用法详解
2018/06/05 Python
Python绘图Matplotlib之坐标轴及刻度总结
2019/06/28 Python
Python pip 安装与使用(安装、更新、删除)
2019/10/06 Python
浅谈PyQt5中异步刷新UI和Python多线程总结
2019/12/13 Python
Python局部变量与全局变量区别原理解析
2020/07/14 Python
德国家具购物网站:Möbel Höffner
2019/08/26 全球购物
志愿者活动总结
2014/04/28 职场文书
贸易经济专业自荐书
2014/06/29 职场文书
基于tensorflow权重文件的解读
2021/05/26 Python
sentinel支持的redis高可用集群配置详解
2022/04/01 Redis
PostgreSQL数据库去除重复数据和运算符的基本查询操作
2022/04/12 PostgreSQL