JavaScript 对象
JavaScript 对象是拥有属性和方法的数据。
真实生活中的对象,属性和方法
真实生活中,一辆汽车是一个对象。
对象有它的属性,如重量和颜色等,方法有启动停止等:
对象 | 属性 | 方法 |
---|---|---|
car.name = Fiat car.model = 500 car.weight = 850kg car.color = white |
car.start() car.drive() car.brake() car.stop() |
所有汽车都有这些属性,但是每款车的属性都不尽相同。
所有汽车都拥有这些方法,但是它们被执行的时间都不尽相同。
JavaScript 对象
在 JavaScript中,几乎所有的事物都是对象。
在 JavaScript 中,对象是非常重要的,当你理解了对象,就可以了解 JavaScript 。 |
你已经学习了 JavaScript 变量的赋值。
以下代码为变量 car 设置值为 "Fiat" :
对象也是一个变量,但对象可以包含多个值(多个变量),每个值以 name:value 对呈现。
在以上实例中,3 个值 ("Fiat", 500, "white") 赋予变量 car。
JavaScript 对象是变量的容器。 |
对象定义
你可以使用字符来定义和创建 JavaScript 对象:
定义 JavaScript 对象可以跨越多行,空格跟换行不是必须的:
对象属性
可以说 "JavaScript 对象是变量的容器"。
但是,我们通常认为 "JavaScript 对象是键值对的容器"。
键值对通常写法为 name : value (键与值以冒号分割)。
键值对在 JavaScript 对象通常称为 对象属性。
JavaScript 对象是属性变量的容器。 |
对象键值对的写法类似于:
- PHP 中的关联数组
- Python 中的字典
- C 语言中的哈希表
- Java 中的哈希映射
- Ruby 和 Perl 中的哈希表
访问对象属性
你可以通过两种方式访问对象属性:
对象方法
对象的方法定义了一个函数,并作为对象的属性存储。
对象方法通过添加 () 调用 (作为一个函数)。
该实例访问了 person 对象的 fullName() 方法:
如果你要访问 person 对象的 fullName 属性,它将作为一个定义函数的字符串返回:
JavaScript 对象是属性和方法的容器。 |
在随后的教程中你将学习到更多关于函数,属性和方法的知识。
访问对象方法
你可以使用以下语法创建对象方法:
methodName : function() { // 代码 }
你可以使用以下语法访问对象方法:
通常 fullName() 是作为 person 对象的一个方法, fullName 是作为一个属性。
如果使用 fullName 属性,不添加 (), 它会返回函数的定义:
有多种方式可以创建,使用和修改 JavaScript 对象。
同样也有多种方式用来创建,使用和修改属性和方法。
在随后的教程中,你将学习到更多关于对象的知识。 |
追梦
104***7710@qq.com
JavaScript对象:属性和方法的容器;
对象的属性之间一定要用逗号隔开;
对象的方法定义了一个函数,并作为对象的属性存储。
对象方法通过添加 () 调用 (作为一个函数)。
比如:
追梦
104***7710@qq.com
吃掉小秋秋
159***6742@qq.com
javaScript 可以通过 new Object 来创建对象,再添加属性和属性值,比如:
吃掉小秋秋
159***6742@qq.com
2018.01.18
445***030@qq.com
javaScript对象中属性具有唯一性(这里的属性包括方法),如果有两个重复的属性,则以最后赋值为准。比如同时存在两个play:
2018.01.18
445***030@qq.com
small blue
129***9253@qq.com
使用 var name = person.fullName(); 调用对象函数时,fullName 会被立即执行:
控制台会先打印 person.fullName ,再打印 name。
small blue
129***9253@qq.com
BIgFatStar
799***218@qq.com
JavaScript 对象是键值对的容器,“键”必须为字符串,“值” 可以是 JavaScript 中包括 null 和 undefined 的任意数据类型。
代码实例:
BIgFatStar
799***218@qq.com
lucid dream
182***5505@qq.com
反对楼上的,键的类型不一定是字符串,而是字符串或符号,一般类型都是转换成字符串(对象数字等类型),但是符号不会被强制转换。
注意:如果把符号用作对象的属性 / 键值,那么它会以一种特殊的方式存储,使得这个属性不出现在枚举中,要通过原型链上的函数 .getOwnPropertySymbols 才能找到:
lucid dream
182***5505@qq.com
祝永超
771***44@qq.com
参考地址
对象的存储时键值对形式的存储,一般情况下 [] 适用于任何形式的取值,但是 . 并不一定适用于所有的情况,下边介绍两种情况的区别。
什么是特殊:当键名试一下情况下,键名是一个含有数字的字符串;当键名有特殊符号时;当键值是一个引号引起来的字符串时。
祝永超
771***44@qq.com
参考地址