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 相关文章推荐
繁简字转换功能
Jul 19 Javascript
js函数使用技巧之 setTimeout(function(){},0)
Feb 09 Javascript
jQuery 1.4 15个你应该知道的新特性(译)
Jan 24 Javascript
js的正则test,match,exec详细解析
Jan 29 Javascript
js创建表单元素并使用submit进行提交
Aug 14 Javascript
jQuery实现响应鼠标背景变化的动态菜单效果代码
Aug 27 Javascript
Javascript实现检测客户端类型代码封包
Dec 03 Javascript
BootstrapTable与KnockoutJS相结合实现增删改查功能【二】
May 10 Javascript
JavaScript简单获取系统当前时间完整示例
Aug 02 Javascript
jQuery中的deferred使用方法
Mar 27 jQuery
用 js 的 selection range 操作选择区域内容和图片
Apr 18 Javascript
layui select获取自定义属性方法
Aug 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统计目录下的文件总数及代码行数(去除注释及空行)
2011/01/17 PHP
gd库图片下载类实现下载网页所有图片的php代码
2012/08/20 PHP
php调整服务器时间的方法
2015/04/03 PHP
php常用表单验证类用法实例
2015/06/18 PHP
php实现的数字验证码及数字运算验证码
2015/07/30 PHP
PHP实现将上传图片自动缩放到指定分辨率,并保持清晰度封装类示例
2019/06/17 PHP
html下载本地
2006/06/19 Javascript
JavaScript中令你抓狂的魔术变量
2006/11/30 Javascript
轻松创建nodejs服务器(8):非阻塞是如何实现的
2014/12/18 NodeJs
Position属性之relative用法
2015/12/14 Javascript
jQuery siblings()用法实例详解
2016/04/26 Javascript
JavaScript实现替换字符串中最后一个字符的方法
2017/03/07 Javascript
vue.js从安装到搭建过程详解
2017/03/17 Javascript
解决layui轮播图有数据不显示的情况
2019/09/16 Javascript
浅谈Vue static 静态资源路径 和 style问题
2020/11/07 Javascript
Vue3 实现双盒子定位Overlay的示例
2020/12/22 Vue.js
[00:44]TI7不朽珍藏III——军团指挥官不朽展示
2017/07/15 DOTA
[01:04:05]VG vs Newbee 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
Python中的闭包实例详解
2014/08/29 Python
Python自动化开发学习之三级菜单制作
2017/07/14 Python
Python简单生成随机姓名的方法示例
2017/12/27 Python
Python3实现转换Image图片格式
2018/06/21 Python
python调用自定义函数的实例操作
2019/06/26 Python
Pytorch实现的手写数字mnist识别功能完整示例
2019/12/13 Python
Python Pickle 实现在同一个文件中序列化多个对象
2019/12/30 Python
jupyter notebook 多行输出实例
2020/04/09 Python
浅谈opencv自动光学检测、目标分割和检测(连通区域和findContours)
2020/06/04 Python
python3.8.3安装教程及环境配置的详细教程(64-bit)
2020/11/28 Python
Python try except else使用详解
2021/01/12 Python
新闻编辑自荐信
2013/11/03 职场文书
中学生励志演讲稿
2014/04/26 职场文书
投资建议书模板
2014/05/12 职场文书
普通话演讲稿
2014/09/03 职场文书
劳动模范获奖感言
2015/07/31 职场文书
中秋节英文祝福语句(14句)
2019/09/11 职场文书
2019年图书室自查报告范本
2019/10/12 职场文书