3 回答

TA貢獻(xiàn)158條經(jīng)驗(yàn) 獲得超188個(gè)贊
<input type="button" id="btn" value="點(diǎn)擊按鈕" ?onclick="chg()"/>?
這里的 onclick="chg()"; 叫做事件屬性,效果是點(diǎn)擊后執(zhí)行一段js代碼,你這里是直接調(diào)用函數(shù)chg,不過(guò)你把函數(shù)chg聲明在window.onload = function(){}; 這個(gè)局部作用域內(nèi),全局(當(dāng)前)作用域內(nèi)找不到,所以這時(shí)候會(huì)報(bào)一個(gè)chg not defined的錯(cuò)誤。你非要將函數(shù)寫在onload內(nèi)也不是不行,可以這樣: chg = function() { // some code }; 或者 window.chg = function() { // some code };不過(guò)沒(méi)啥意義就是了。
btnObj.onclick = function() {}; 其實(shí)就相當(dāng)于將btnObj節(jié)點(diǎn)的onclick屬性賦值為一個(gè)匿名函數(shù),btnObj節(jié)點(diǎn)已經(jīng)拿到,訪問(wèn)、修改屬性自然也沒(méi)問(wèn)題了,你可以用兩種方法分別console一下this,你會(huì)發(fā)現(xiàn)第一種輸出的是window,第二種輸出的是btnObj自己。

TA貢獻(xiàn)376條經(jīng)驗(yàn) 獲得超318個(gè)贊
你把chg()放進(jìn)去也是一樣的,里面外面都是可以,不管什么匿名函數(shù),onload只是在頁(yè)面加載完成后再執(zhí)行里面的代碼
添加回答
舉報(bào)