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 相关文章推荐
function foo的原型与prototype属性解惑
Nov 19 Javascript
jquery下为Event handler传递动态参数的代码
Jan 06 Javascript
JQuery表格内容过滤的实现方法
Jul 05 Javascript
JavaScript 垃圾回收机制分析
Oct 10 Javascript
Js实现手机发送验证码时按钮延迟操作
Jun 20 Javascript
json对象与数组以及转换成js对象的简单实现方法
Jun 24 Javascript
微信小程序 后台https域名绑定和免费的https证书申请详解
Nov 10 Javascript
详解JS中遍历语法的比较
Apr 07 Javascript
JavaScript ES6 Class类实现原理详解
May 08 Javascript
如何构建 vue-ssr 项目的方法步骤
Aug 04 Javascript
解决vue $http的get和post请求跨域问题
Jun 07 Vue.js
Echarts如何重新渲染实例详解
May 30 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
自己前几天写的无限分类类
2007/02/14 PHP
关于crontab的使用详解
2013/06/24 PHP
php calender(日历)二个版本代码示例(解决2038问题)
2013/12/24 PHP
浅析PHP编程中10个最常见的错误
2014/08/08 PHP
Laravel 5框架学习之模型、控制器、视图基础流程
2015/04/08 PHP
PHP 错误处理机制
2015/07/06 PHP
PHP获取客户端及服务器端IP的封装类
2016/07/21 PHP
Yii2单元测试用法示例
2016/11/12 PHP
PHP实现的多维数组排序算法分析
2018/02/10 PHP
js 效率组装字符串 StringBuffer
2009/12/23 Javascript
JS去除右边逗号的简单方法
2013/07/03 Javascript
jquery 清空file域示例(兼容个浏览器)
2013/10/11 Javascript
用js代码改变单选框选中状态的简单实例
2013/12/18 Javascript
js中各种类型的变量在if条件中是true还是false
2014/07/16 Javascript
js实现无限级树形导航列表效果代码
2015/09/23 Javascript
详解原生JavaScript实现jQuery中AJAX处理的方法
2016/05/10 Javascript
Bootstrap Search Suggest使用例子
2016/12/21 Javascript
深入理解Node中的buffer模块
2017/06/03 Javascript
JS+HTML5 FileReader实现文件上传前本地预览功能
2020/03/27 Javascript
解决ionic和angular上拉加载的问题
2017/08/03 Javascript
javascript判断一个变量是数组还是对象
2019/04/10 Javascript
[04:38]完美世界携手游戏风云打造 卡尔工作室饰品系统篇
2013/04/25 DOTA
Django日志模块logging的配置详解
2017/02/14 Python
python3之模块psutil系统性能信息使用
2018/05/30 Python
Python读取txt文件数据的方法(用于接口自动化参数化数据)
2018/06/27 Python
Python 异常的捕获、异常的传递与主动抛出异常操作示例
2019/09/23 Python
python实现引用其他路径包里面的模块
2020/03/09 Python
css3实现背景图片拉伸效果像桌面壁纸一样
2013/08/19 HTML / CSS
GoPro摄像机美国官网:美国运动相机厂商
2018/07/03 全球购物
PHP面试题大全
2015/10/16 面试题
机电专业毕业生求职信
2013/10/27 职场文书
领导干部培训感言
2014/01/23 职场文书
趣味运动会简讯
2015/07/20 职场文书
Python 线程池模块之多线程操作代码
2021/05/20 Python
Python进程间的通信之语法学习
2022/04/11 Python
Pytorch中expand()的使用(扩展某个维度)
2022/07/15 Python