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(要遍历的对象)
返回值就是该对象可枚举的属性.