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的设置页面文本框 只能输入数字的实现代码
Apr 19 Javascript
当自定义数据属性为json格式字符串时jQuery的data api问题探讨
Feb 18 Javascript
jQuery实现根据类型自动显示和隐藏表单
Mar 18 Javascript
js HTML5 Ajax实现文件上传进度条功能
Feb 13 Javascript
原生js实现节日时间倒计时功能
Jan 18 Javascript
原生js实现类似fullpage的单页/全屏滚动
Jan 22 Javascript
JavaScript体验异步更好的解决办法
Jan 08 Javascript
在vue中使用Autoprefixed的方法
Jul 27 Javascript
Vue自定义指令写法与个人理解
Feb 09 Javascript
微信小程序实现单选选项卡切换效果
Jun 19 Javascript
解决vue里a标签值解析变量,跳转页面,前面加默认域名端口的问题
Jul 22 Javascript
JavaScript中的Proxy对象
Nov 27 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
Zerg基本策略
2020/03/14 星际争霸
php下检测字符串是否是utf8编码的代码
2008/06/28 PHP
PHP中将数组转成XML格式的实现代码
2011/08/08 PHP
网站防止被刷票的一些思路与方法
2015/01/08 PHP
php集成开发环境详解
2019/09/24 PHP
为Extjs加加速(javascript加速)
2010/08/19 Javascript
遍历jquery对象的代码分享
2011/11/02 Javascript
js动态添加删除,后台取数据(示例代码)
2013/11/25 Javascript
jQuery焦点图切换简易插件制作过程全纪录
2014/08/27 Javascript
微信小程序实现给循环列表添加点击样式实例
2017/04/26 Javascript
微信小程序实现滑动切换自定义页码的方法分析
2018/12/29 Javascript
jquery实现图片无缝滚动 蒙版遮蔽效果
2020/01/11 jQuery
Webpack3+React16代码分割的实现
2021/03/03 Javascript
[02:25]DOTA2英雄基础教程 虚空假面
2014/01/02 DOTA
Python enumerate遍历数组示例应用
2008/09/06 Python
python同时给两个收件人发送邮件的方法
2015/04/30 Python
Pythont特殊语法filter,map,reduce,apply使用方法
2016/02/27 Python
Python解析json文件相关知识学习
2016/03/01 Python
Python实现Logger打印功能的方法详解
2017/09/01 Python
Python处理命令行参数模块optpars用法实例分析
2018/05/31 Python
python 字典中文key处理,读取,比较方法
2018/07/06 Python
Python爬虫入门有哪些基础知识点
2020/06/02 Python
Python3内置函数chr和ord实现进制转换
2020/06/05 Python
css3实现一个div设置多张背景图片及background-image属性实例演示
2017/08/10 HTML / CSS
CSS3实现瀑布流布局与无限加载图片相册的实例代码
2016/12/22 HTML / CSS
HTML5 的新的表单元素(datalist/keygen/output)使用介绍
2013/07/19 HTML / CSS
Ratchet 模态框的实现
2020/08/19 HTML / CSS
Internet主要有哪些网络群组成
2015/12/24 面试题
init进程的作用
2012/04/12 面试题
创业计划书模版
2014/02/05 职场文书
营销团队口号
2014/06/06 职场文书
交通运输局四风问题对照检查材料思想汇报
2014/10/09 职场文书
纪录片信仰观后感
2015/06/08 职场文书
在校生证明
2015/06/17 职场文书
考教师资格证不要错过的4个最佳时机
2019/07/17 职场文书
解决MySQL存储时间出现不一致的问题
2021/04/28 MySQL