我们这章要学习如何从物件中取值
主要的方法有两种,一个是 .
, 另一个是 []
。
var family = { // property1: value1, // property2: value2 name: '小明家', deposit: 1000, member: { mom: '老妈', son: '小明' }, callFamily: function () { console.log('小明家'); }};console.log(family.name); // 小明家console.log(family.member.mom); // 老妈console.log(family['name']);console.log(family['member']['mom']);
利用 .
的方式,就是在 物件变数名称之后加上.再加上物件属性的名称
就可以取道里面的那个值。
那如果是利用 []
, 则是直接接在变数名称之后,其中用字串包裹住属性名称,依样可以取到这个值。
所以其实物件的属性名称 都会被视为字串!!!
那么到底这两个方法差别在哪里呢??
就是 []
除了使用字串之外,也可以使用变数喔!
var family = { // property1: value1, // property2: value2 name: '小明家', deposit: 1000, 1: '1', // 新增这行 member: { mom: '老妈', son: '小明' }, callFamily: function () { console.log('小明家'); }};console.log(family.name); // 小明家console.log(family.member.mom); // 老妈console.log(family['name']); // 小明家console.log(family['member']['mom']); // 老妈var a = 'name';console.log(family[a]); // 小明家
不只如此喔,如果我们在物件中,不小心插入了数字的属性,使用 []
还是可以取的到,但如果是用 .
的话则没办法取到。
虽然 .
, 很方便,但还是有它的限制。
那如果我们要执行 callFamily
这个 function 的话也一样
family.callFamily(); // 小明家family['callFamily'](); // 小明家
插入新增的属性以及值
除了刚刚我们定义的物件属性之外,要怎么在 javascript 运行的过程中,新增属性以及值呢?
其实跟取值的概念差不多~
family.dog = '小白';family['kitten'] = '小猫';
利用.
/ []
这两个方式也都可以新增属性以及值。
可以实际运行之后发现,的确 dog 以及 kitten 有新增到 family 的物件中。
那么我们也可以透过 []
新增一些特殊符号喔,例如说
family['$'] = '$$$$$';
这样也是可以的喔!
删除特定的属性
我们使用 delete
+ 物件取值得属性方式
delete family.deposit;delete family['$'];
好~那这篇文章,我们就介绍了物件的 取值 、 新增值 、 删除值 的方法。
希望能对各位有帮助!汪汪