2017-10-15 117 views
0

我正要在這裏回答一個問題,並發現我的自我掙扎似乎是一件容易理解的事情。
考慮這個HTML:輸入id保留字

<input type="text" id="width" value="foo" /> 
 
<input type="button" value="width.value" onclick="console.log(width.value)"/> 
 
<input type="button" value="window.width.value" onclick="console.log(window.width.value)"/>

我們有一個inputwidthid並具有一個onClick事件它是所有記錄輸入的值兩個按鈕。它們之間的不同之處在於,一個輸入直接訪問輸入的id作爲變量width.value,另一個輸入通過window.width.value來完成。
這裏令人驚歎的部分是隻有window.width.value工作,另一個返回undefined

我查找了javascript保留關鍵字,但找不到關於width的任何內容,順便說一句,它也與height關鍵字一樣。
我錯過了什麼?

+1

這是關於範圍。在你的'width.value'中,你正在訪問按鈕的width-attribute屬性。在這種情況下,'width.value == this.width.value'。 –

+0

只是想說@FrederikHansen說了些什麼,基本上忘記了INPUT的屬性也是如此,..就像寬度和高度。 – Keith

回答

1

button對象上調用onclick方法。因此,除非您指定您想要窗口的width屬性,否則它將被按鈕對象的width屬性遮蔽。在這種情況下,按鈕的寬度沒有value屬性。

+0

我簡直不敢相信我忘記了! :) –