var something = {
wtf: null,
omg: null
};
自從我上次編程以來,我的JavaScript知識仍然非常糟糕,但我認爲我現在已經瞭解了大部分知識。除此之外。我不記得曾經見過這個。它是什麼?我在哪裏可以瞭解更多信息?JavaScript中的這個東西是什麼?
var something = {
wtf: null,
omg: null
};
自從我上次編程以來,我的JavaScript知識仍然非常糟糕,但我認爲我現在已經瞭解了大部分知識。除此之外。我不記得曾經見過這個。它是什麼?我在哪裏可以瞭解更多信息?JavaScript中的這個東西是什麼?
這是一個對象字面具有兩個屬性。通常這是人們如何創建關聯數組或哈希,因爲JS本身不支持該數據結構。但要注意,它仍然是一個不折不扣的對象,你甚至可以添加的功能特性:
var myobj = {
name: 'SO',
hello: function() {
alert(this.name);
}
};
而且你可以使用一個for循環的屬性迭代:
for (i in myobj) {
// myobj[i]
// Using the brackets (myobj['name']) is the same as using a dot (myobj.name)
}
JavaScript不支持關聯數組/散列?我會爭辯說,一切都是一個關聯數組/散列。 – 2008-10-07 16:46:22
它是對象的字面語法。 'wft'和'omg'是屬性名稱,而null和null是屬性值。
它等效於:
var something = new Object();
something.wtf = null;
something.omg = null;
退房Mozilla的上對象文本文檔:http://developer.mozilla.org/En/Core_JavaScript_1.5_Guide:Literals#Object_Literals
哦,我明白了。那麼,根據鏈接,字符串是「」還是「」,因爲對象是{}?不知道這是否是描述它的最好方式,但我想我現在明白了。謝謝。 – 2008-10-07 15:14:25
我相信它的對象有2個屬性,WTF和OMG。
你可以說
something.wtf = "myMessage";
alert(something.wtf);
退房JSON.ORG
這是內嵌的JavaScript對象實例化的一個例子。
這是一個對象字面值。這實際上等效於以下:
var something = new Object();
something["wtf"] = null;
something["omg"] = null;
這是一個對象字面(或,有時,一個香草對象在圖書館用哈希類)。
同樣的事情:
var o = new Object();
o.wtf = null;
o.omg = null;
解釋來自「我想在Javascript」的角度來看關聯數組(這是在被用於許多情況下,對象文本結束)
從"Mastering Javascript Arrays"
關聯數組是一個使用字符串而不是數字作爲索引的數組。
var normalArray = [];
normalArray[1] = 'This is an enumerated array';
alert(normalArray[1]); // outputs: This is an enumerated array
var associativeArray = [];
associativeArray['person'] = 'John Smith';
alert(associativeArray['person']); // outputs: John Smith
Javascript沒有,也不支持關聯數組。然而...... Javascript中的所有數組都是對象,Javascript的對象語法給出了關聯數組的基本模擬。出於這個原因,上面的示例代碼將實際工作。要警告的是,這不是一個真正的陣列,如果你嘗試使用它,它會有真正的缺陷。示例中的'person'元素成爲Array對象屬性和方法的一部分,就像.length,.sort(),.splice()以及所有其他內置屬性和方法一樣。
可以遍歷一個對象的下面的循環性能...
var associativeArray = [];
associativeArray["one"] = "First";
associativeArray["two"] = "Second";
associativeArray["three"] = "Third";
for (i in associativeArray) {
document.writeln(i+':'+associativeArray[i]+', ');
// outputs: one:First, two:Second, three:Third
};
在上面的例子中,associativeArray.length將是零,因爲我們實際上並沒有將任何東西放入數組,我們把它變成associativeArray的對象。 associativeArray [0]將是未定義的。
上述示例中的循環還將選取已添加到數組的所有方法,屬性和原型,而不僅僅是數據。人們對Prototype庫有很多問題,因爲Prototype會向Array對象添加一些有用的Prototype函數,並且在x循環中我會選擇這些附加的方法。這是使用Array/objects作爲窮人的關聯數組的關鍵。作爲最後一個例子,無論您是否將associativeArray定義爲數組([]),對象({}),正則表達式(//),String(「」)或者其他任何其他的Javascript對象。
底線是 - 不要嘗試使用關聯數組,它們是代碼 - 對象屬性,而不是數組。
感謝您的信息,但我已經主要知道這一點。 – 2008-10-07 15:22:16
此代碼:
var something = {wtf:null}
具有同樣的效果:
var something={};
something.wtf=null;
或者不必要的冗長:
var something=new Object();
something.wtf=null;
而且要記住,最後一行是非常有用與
something["wtf"]=null;
所以,你可以使用:
var myName="wtf";
something[myName]=null;
現在這個問題回答真實,我想補充AppJet有一個簡單的JavaScript教程,課程的「對象」,解釋它真的很好: http://appjet.com/學習程序/課程/對象 – 2008-10-07 15:47:43