第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

原生js中的onload事件傳參問題,這段代碼依次彈出什么以及為什么會是這樣?

原生js中的onload事件傳參問題,這段代碼依次彈出什么以及為什么會是這樣?

肥皂起泡泡 2019-03-14 17:15:41
window.onload=function(a,b){    alert(onload.length);    alert(arguments.length);}onload(3,4,5);
查看完整描述

2 回答

?
慕斯709654

TA貢獻(xiàn)1840條經(jīng)驗(yàn) 獲得超5個(gè)贊

結(jié)果的話,我就不列了,相信題主自己試過了,下面主要解釋下原因:

onload 函數(shù)會被調(diào)用兩次
第一次是你手動調(diào)用 onload(3, 4, 5) 觸發(fā)(實(shí)際調(diào)用的是 window.onload(1, 2,3))
第二次是事件函數(shù)被動觸發(fā)

至于為什么 onload(3, 4, 5) 先調(diào)用,題主可以去 google 一波 js 的事件循環(huán)相關(guān)主題

下面來解釋下為什么 4 次彈出的值分別是 2,3,2,1

  1. 首先,一個(gè)函數(shù)的 length 屬性,指的是定義時(shí)候參數(shù)的數(shù)量,也就是我們通常說的形參。因?yàn)?onload 定義時(shí)的參數(shù)是 a,b ,所以兩次結(jié)果都是 2

  2. arguments.length 指的是,函數(shù)實(shí)際運(yùn)行時(shí)傳的參數(shù),通常叫實(shí)參。手動調(diào)用 onload(3, 4, 5) 時(shí)傳了 3 個(gè)參數(shù),事件觸發(fā)調(diào)用 onload 時(shí)只傳了事件對象,所以只有 1 個(gè)參數(shù)


查看完整回答
反對 回復(fù) 2019-03-23
?
鳳凰求蠱

TA貢獻(xiàn)1825條經(jīng)驗(yàn) 獲得超4個(gè)贊

window.onload是窗口加載完成后的回調(diào),包括腳本JavaScript
所以onload(3,4,5)是js腳本,必須腳本執(zhí)行完畢后才會回調(diào)window.onload事件

  1. Function.length是方法定義時(shí)形參的個(gè)數(shù),但是不包括(a,...arg)這種剩余參數(shù)也不包括默認(rèn)值(a=1)這種,所以 function test(a,...arg){}這個(gè)函數(shù)test.length1,function test(a,b=4,c){}也是1

  2. arguments.length是方法調(diào)用時(shí),實(shí)參的個(gè)數(shù)


查看完整回答
反對 回復(fù) 2019-03-23
  • 2 回答
  • 0 關(guān)注
  • 1108 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號