购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.8 对象的取值

“小娃娃,我现在问你,如果我不知道对象的某个属性叫什么名字,那么又该怎么访问对象中对应这个属性的值呢?”叶老笑呵呵地问道。

“什么什么,事先都不知道对象的属性名称,怎么可能访问得到啊?这我可不知道,我想这是不可能的。”叶小凡想了想,赶紧摇头。

“这样吧,我换一种说法。我想你现在已经知道对象可以通过一个点号(.)访问其中的某一个数据了。”说着,叶老随手一挥,一个对象就生成出来了。

“我现在想要得到解毒草,就直接用container调用它的caoyao属性。”

     container.caoyao

“这样做的确是可以的,但是如果遇到这种情况,即事先不知道调用的属性叫什么名字,那么该如何用一个变量定义属性呢?”说着,叶老又随手一挥,定义了一个变量。

“这……”叶小凡也陷入沉思,过了许久,缓缓说道:“直接点prop肯定不行,那样的话,container调用的肯定是一个叫作prop的属性。而事实上,container对象里面是没有叫作prop的属性的,得到的结果肯定是undefined。”

听到这里,叶老向叶小凡投去了赞赏的目光,继而说道:“你的分析没有错,这里不能再用之前的那种方法了。小娃娃,你且看好!”话音刚落,叶老就打出了新的代码。

效果如图1-1所示。

图1-1 打印结果

“这!”叶小凡惊呼。

看着叶小凡惊讶的样子,叶老似乎有些得意。

“小娃娃,这就是我教你的新技巧, 对象不仅可以用点号(.)访问它的一个属性,也可以用中括号 ([])。 如果用中括号,里面就允许再写一个变量 当然了,写字符串也是可以的 。”

似乎是担心叶小凡理解不了,叶老又补充了一行代码。效果如图1-2所示。

图1-2 打印结果

过了好一会儿,叶小凡才回味过来,说道:“我明白了, 如果事先属性的名称未知,或者调用的属性是动态变化的,就不能使用点号了 使用中括号可以最大程度地提升对象调用属性的灵活度 !” In4tAa4Kmnza5zmiNT29GoVSAsCI3DKw4IDGKlvFk9KAuuBp9cj1s4EtvJ+c4FrZ

点击中间区域
呼出菜单
上一章
目录
下一章
×