84669 person learning
152542 person learning
20005 person learning
5487 person learning
7821 person learning
359900 person learning
3350 person learning
180660 person learning
48569 person learning
18603 person learning
40936 person learning
1549 person learning
1183 person learning
32909 person learning
比如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(要遍历的对象)
返回值就是该对象可枚举的属性.