84669 人学习
152542 人学习
20005 人学习
5487 人学习
7821 人学习
359900 人学习
3350 人学习
180660 人学习
48569 人学习
18603 人学习
40936 人学习
1549 人学习
1183 人学习
32909 人学习
比如navigator對象,有appName,appCodeName,appVersion,platform,userAgent這幾個屬性。我將這幾個屬性保存在一個數組中:var nav=[appName,appCodeName,appVersion,platform,userAgent];然後navigator.nav[1]這樣爲什麽不行呢?
ringa_lee
当你明确知道一个对象 a 具有属性 b,才可以 a.b 使用。
a
b
a.b
另一种情况是你需要动态使用一个对象的某个属性:
var a = { b: 'bb'}; var c = 'b'; console.log(a[c]);
虽然 c 保存了一个属性名,但是 a 没有 c 这个属性,a.c 中的 c 是个固定值。而 a[c] 中的括号会计算其中的变量得到 a['b']。
c
a.c
a[c]
a['b']
所以你应该写成 navagator[nav[1]]
navagator[nav[1]]
说两点:1、 不是navagator對象,是Navigator;2、 你数组里存的都是变量;
var nav=["appName","appCodeName","appVersion","platform","userAgent"];
var nat = navigator; var nav=[nat.appName]; console.log(nav[0]);
即可调取
Object.keys(要遍历的对象)返回值就是该对象可枚举的属性.
当你明确知道一个对象
a
具有属性b
,才可以a.b
使用。另一种情况是你需要动态使用一个对象的某个属性:
虽然
c
保存了一个属性名,但是a
没有c
这个属性,a.c
中的c
是个固定值。而
a[c]
中的括号会计算其中的变量得到a['b']
。所以你应该写成
navagator[nav[1]]
说两点:
1、 不是navagator對象,是Navigator;
2、 你数组里存的都是变量;
即可调取
Object.keys(要遍历的对象)
返回值就是该对象可枚举的属性.