這篇的例子,主要是來引起對Javascript對象的理解及注意的。其實是一種面試時的一個坑,實際專案中也很少用得到,但是為了提高警覺性,我們來看這個例子:
代碼名稱
var first = {}; var second = {k:"second"}; var third = {k:"third"}; first[second] = 100; first[third] = 200; console.log(first[second])//这里会输出什么内容呢?
如果要自己做這個題,後面的解釋先不看。
這裡會輸出什麼樣的結果呢?可能大部分人會覺得結果是100,或是題目有錯誤,再或結果是200。
其實最終結果是200。
為什麼? 因為second、third都是對象,而且都是[object object],因此first[second] 等價於first[[object object]] 同樣first[third] 等價於first[[object object]] 所以最終的結果可以是first["[object object]"],例子中對這個表達式進行了兩次賦值操作,所以最終的結果是200。
所以在javascript中,很多的細節需要我們去注意的,或許就是那些面試者,不知道出什麼面試題,盡出這些陷阱式的題目。不過,我們就是需要把基礎打牢固了,什麼都不怕! 後續我會繼續出一些題目來做講解!
透過一個簡簡單單的例題,引發了大家的思考,為大家學習javascript物件提供了有了許多啟發,希望大家有所收穫。