我有這樣的代碼:陣列和全局對象
var ui = ["one","two","three"];
ui.forEach(function(id)
{
ui[id] = "msg_all " + id
});
console.dir(ui);
爲什麼UI [0] == 「一」 時window.one == 「msg_all一個」
我有這樣的代碼:陣列和全局對象
var ui = ["one","two","three"];
ui.forEach(function(id)
{
ui[id] = "msg_all " + id
});
console.dir(ui);
爲什麼UI [0] == 「一」 時window.one == 「msg_all一個」
你錯誤地使用forEach函數,這個函數的第一個參數是每個迭代的項目,第二個參數是索引。
var ui = ["one","two","three"];
ui.forEach(function(item, index)
{
ui[index] = "msg_all " + item
});
console.dir(ui);
不,這是很好的例子。我知道第二個參數是第一個參數項目時的索引。但爲什麼當我運行console.dir我gest thos味精: [「one」,「two」,「three」] –
[「one」,「two」,「three」] 0:「one」 1: 「二」 2: 「三」 之一: 「msg_all一個」 二: 「msg_all兩個」 三: 「msg_all三」 長度:3 __proto __:數組[0] 爲什麼呢? –
'id'不是一個整數,爲什麼你直接在'ui'數組中使用它作爲索引? – Enix
@gra窗口是所有的JavaScript對象的基本範圍,它會自動「連接」來定義的,除非你在聲明之前使用「VAR」每個變量,在這種情況下,變量的作用域是本地(這意味着它包含在父函數中,否則就是全局的,如果你在函數塊之外聲明你的變量的話)。此外窗口被定義爲一個常量,那就是你不能重新定義窗口對象(你會得到一個錯誤,說「類型錯誤:重新聲明const窗口」)。 – Elangovan
因爲ui [id]等於一個示例ui [「one」],所以window.one等於該消息 – Araz
而ui是一個inde數組0 1 2 – Araz