javascript对象的创建和访问


Posted in Javascript onMarch 08, 2016

JavaScript,很少能让人想到它面向对象的特性,甚至有人说它不是面向对象的语言,因为它没有类。没错, JavaScript 真的没有类,但 JavaScript 是面向对象的语言。 JavaScript 只有对象,对象就是对象,不是类的实例。
因为绝大多数面向对象语言中的对象都是基于类的,所以经常有人混淆类的实例与对象的概念。对象就是类的实例,这在大多数语言中都没错,但在 JavaScript 中却不适用。JavaScript 中的对象是基于原型的。

创建和访问

JavaScript 中的对象实际上就是一个由属性组成的关联数组,属性由名称和值组成,值的类型可以是任何数据类型,或者函数和其他对象。注意 JavaScript 具有函数式编程的特性,所以函数也是一种变量,大多数时候不用与一般的数据类型区分。

在 JavaScript 中,你可以用以下方法创建一个简单的对象:

var foo = {};
foo.prop_1 = 'bar';
foo.prop_2 = false;
foo.prop_3 = function() {
return 'hello world';
}
console.log(foo.prop_3());

以上代码中,我们通过 var foo = {}; 创建了一个对象,并将其引用赋值给 foo,
通过 foo.prop1 来获取它的成员并赋值,其中 {} 是对象字面量的表示方法,也可以用 var foo = new Object() 来显式地创建一个对象。
1. 使用关联数组访问对象成员
我们还可以用关联数组的模式来创建对象,以上代码修改为:

var foo = {};
foo['prop1'] = 'bar';
foo['prop2'] = false;
foo['prop3'] = function() {
return 'hello world';
}

在 JavaScript 中,使用句点运算符和关联数组引用是等价的,也就是说任何对象(包括
this 指针)都可以使用这两种模式。使用关联数组的好处是,在我们不知道对象的属性名称的时候,可以用变量来作为关联数组的索引。例如:

var some_prop = 'prop2';
foo[some_prop] = false;

2.使用对象初始化器创建对象
上述的方法只是让你对JavaScript对象的定义有个了解,真正在使用的时候,我们会采用下面这种更加紧凑明了的方法:

var foo = {
  'prop1': 'bar',
  prop2: 'false',
  prop3: function (){
  return 'hello world';
  }
};

这种定义的方法称为对象的初始化器。注意,使用初始化器时,对象属性名称是否加引号是可选的,除非属性名称中有空格或者其他可能造成歧义的字符,否则没有必要使用引号。

以上就是javascript创建和访问对象的实现方法,希望对大家的学习有所帮助。

Javascript 相关文章推荐
jQuery formValidator表单验证插件开源了 含API帮助、源码、示例
Aug 14 Javascript
Javascript图像处理—亮度对比度应用案例
Jan 03 Javascript
js抽奖实现随机抽奖代码效果
Dec 02 Javascript
为开发者准备的10款最好的jQuery日历插件
Feb 04 Javascript
jquery解析json格式数据的方法(对象、字符串)
Nov 24 Javascript
Javascript复制实例详解
Jan 28 Javascript
详解Jquery EasyUI tree 的异步加载(遍历指定文件夹,根据文件夹内的文件生成tree)
Feb 11 Javascript
jQuery实现下拉菜单的实例代码
Jun 19 jQuery
详解如何实现一个简单的Node.js脚手架
Dec 04 Javascript
vue项目开发中setTimeout等定时器的管理问题
Sep 13 Javascript
使用Typescript和ES模块发布Node模块的方法
May 25 Javascript
Python机器学习之决策树和随机森林
Jul 15 Javascript
js获取当前日期时间及其它日期操作汇总
Mar 08 #Javascript
使用JQuery实现智能表单验证功能
Mar 08 #Javascript
js表单处理中单选、多选、选择框值的获取及表单的序列化
Mar 08 #Javascript
JS实现设置ff与ie元素绝对位置的方法
Mar 08 #Javascript
Angularjs material 实现搜索框功能
Mar 08 #Javascript
jQuery控制frames及frame页面JS的方法
Mar 08 #Javascript
三种Node.js写文件的方式
Mar 08 #Javascript
You might like
PHP下一个非常全面获取图象信息的函数
2008/11/20 PHP
探讨PHP中OO之静态关键字以及类常量的详解
2013/06/07 PHP
3个PHP多维数组转为一维数组的方法实例
2014/03/13 PHP
php实现有序数组旋转后寻找最小值方法
2018/09/27 PHP
使用javascript访问XML数据的实例
2006/12/27 Javascript
jquery multiSelect 多选下拉框
2010/07/09 Javascript
Javascript中找到子元素在父元素内相对位置的代码
2012/07/21 Javascript
JavaScript实现基于Cookie的存储类实例
2015/04/10 Javascript
JS与jQuery遍历Table所有单元格内容的方法
2015/12/07 Javascript
jQuery基于toggle实现click触发DIV的显示与隐藏问题分析
2016/06/12 Javascript
webpack学习--webpack经典7分钟入门教程
2017/06/28 Javascript
Nodejs模块载入运行原理
2018/02/23 NodeJs
JavaScript设计模式之工厂模式简单实例教程
2018/07/03 Javascript
详解vue中localStorage的使用方法
2018/11/22 Javascript
微信小程序实现左侧滑动导航栏
2020/04/08 Javascript
使用JavaScript获取Django模板指定键值数据
2020/05/27 Javascript
js基于canvas实现时钟组件
2021/02/07 Javascript
Python字符串格式化输出方法分析
2016/04/13 Python
Python代码解决RenderView窗口not found问题
2016/08/28 Python
Django中反向生成models.py的实例讲解
2018/05/30 Python
Python访问MongoDB,并且转换成Dataframe的方法
2018/10/15 Python
Python之inspect模块实现获取加载模块路径的方法
2018/10/16 Python
python小项目之五子棋游戏
2019/12/26 Python
对python中 math模块下 atan 和 atan2的区别详解
2020/01/17 Python
Python实现异步IO的示例
2020/11/05 Python
HTML5页面嵌入小程序没有返回按钮及返回页面空白的问题
2020/05/28 HTML / CSS
WEB控件可以激发服务端事件,请谈谈服务端事件是怎么发生并解释其原理?自动传回是什么?为什么要使用自动传回?
2012/02/21 面试题
公务员职务工作的自我评价
2013/11/01 职场文书
毕业设计计划书
2014/01/09 职场文书
央视元宵晚会主持串词
2014/03/25 职场文书
护士长竞聘书
2014/03/31 职场文书
意外伤害赔偿协议书范本
2014/09/28 职场文书
计划生育诚信协议书
2014/11/02 职场文书
助学感谢信范文
2015/01/21 职场文书
2015年学校财务工作总结
2015/05/19 职场文书
2017年寒假社区服务活动总结
2016/04/06 职场文书