你list
變量將是私有的f()
除非你做的兩件事情之一。
第一個,你可以嘗試返回list
從f()
,這樣你就可以得到你需要的屬性。
function f() {
var list = [{name: 'test'}, {name: 'test2'}];
return list;
}
var f = f();
f[0] // {name: 'test'};
f['test'] // will return undefined; we'll come back to this
二,我認爲這個選項也可能是你在找什麼,你標有「空中接力」的問題,你可以做f()
一個構造函數:
function f() {
this.list = [{name: 'test'}, {name: 'test2'}];
}
var f1 = new f();
f1['list'][0] // {name: 'test'};
f1.list[0] // will also return {name: 'test'};
f1.list['test'] // still will return undefined...
.. 。
您將無法使用['test']
或['test2']
訪問值的原因是因爲它們是您的值,而通常值是我們想要在使用該鍵的對象(在本例中爲['name']
或.name
)。所以你可能想要的是這樣的:
f1.list[0].name // will return 'test'
f1.list[1].name // will return 'test2'
希望這會消除混亂。
你必須爲此使用和實現一個單獨的get()方法。 – Sirko 2013-02-17 10:39:58
如果'var list = [{name:'test'},{name:0}];''f [0]'會返回什麼? – dfsq 2013-02-17 10:41:08
@dfsq它不應該發生,但萬一它應該返回{name:'test'} – 2013-02-17 10:43:48