亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

js函數中的調用

js函數中的調用

qq_天蝎的尾巴卍_0 2017-03-16 22:25:50
?window.onload = function () { var btnObj = document.getElementById("btn"); btnObj.onclick = function () { alert("123"); } } function chg() { alert("124")?}<input type="button" id="btn" value="點擊按鈕" ?onclick="chg()"/> ?chg()函數為什么必須寫在onload外面?匿名函數 為啥能寫在里面使用?
查看完整描述

3 回答

?
千秋此意

TA貢獻158條經驗 獲得超188個贊


<input type="button" id="btn" value="點擊按鈕" ?onclick="chg()"/>?
這里的 onclick="chg()"; 叫做事件屬性,效果是點擊后執行一段js代碼,你這里是直接調用函數chg,不過你把函數chg聲明在window.onload = function(){}; 這個局部作用域內,全局(當前)作用域內找不到,所以這時候會報一個chg not defined的錯誤。你非要將函數寫在onload內也不是不行,可以這樣: chg = function() { // some code }; 或者 window.chg = function() { // some code };不過沒啥意義就是了。

btnObj.onclick = function() {}; 其實就相當于將btnObj節點的onclick屬性賦值為一個匿名函數,btnObj節點已經拿到,訪問、修改屬性自然也沒問題了,你可以用兩種方法分別console一下this,你會發現第一種輸出的是window,第二種輸出的是btnObj自己。


查看完整回答
2 反對 回復 2017-03-16
?
西蘭花偉大炮

TA貢獻376條經驗 獲得超318個贊


你把chg()放進去也是一樣的,里面外面都是可以,不管什么匿名函數,onload只是在頁面加載完成后再執行里面的代碼

查看完整回答
1 反對 回復 2017-03-16
  • 3 回答
  • 0 關注
  • 1507 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號