之前在看對象的api中for in函數時,有一個地方讓我略有疑惑: 為什麼是obj[key]而不是obj.key呢?我們在瀏覽器試一下: 說起來也有點尷尬,原來在for in函數中,得到的key是一個字元串類型,所以只能用obj[key],其實,比如說在這個對象中,obj.x和obj["x"]是完全 ...
之前在看對象的api中for in函數時,有一個地方讓我略有疑惑:
var obj={ x:100, y:200, z:300 }; for(var key in obj){ if(obj.hasOwnProperty(key)){ console.log(key,obj[key]); } }
為什麼是obj[key]而不是obj.key呢?我們在瀏覽器試一下:
說起來也有點尷尬,原來在for in函數中,得到的key是一個字元串類型,所以只能用obj[key],其實,比如說在這個對象中,obj.x和obj["x"]是完全一樣的意思,只是形式上有所區別。順帶一說,hasOwnProperty這個函數接收的變數的類型也只能是字元串類型。