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

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

將參數(shù)傳遞給回調(diào)函數(shù)的正確方法是什么?

將參數(shù)傳遞給回調(diào)函數(shù)的正確方法是什么?

慕妹3146593 2023-02-17 16:05:02
這是一個(gè)工作示例。如您所見(jiàn),我正在調(diào)用setElemHeight函數(shù)并返回一個(gè)來(lái)自getElemHeight. 但我認(rèn)為傳遞價(jià)值而不是功能是一種不好的做法。選項(xiàng) 1)我可以將它包裝在匿名函數(shù)中,如下所示:function () { getElemHeight('.map-svg') }選項(xiàng) 2)我可以在setElemHeight函數(shù)內(nèi)部調(diào)用它并在那里傳遞參數(shù),但我認(rèn)為它會(huì)破壞開(kāi)放封閉原則。我的問(wèn)題是:將參數(shù)傳遞給回調(diào)函數(shù)的正確方法是什么?謝謝。function(elem) {  return $(elem).height()}function setElemHeight(elem, callback, offset) {  let elemHeight = callback  $(elem).height(elemHeight - offset)}$(window).on('load resize', function() {  setElemHeight('#dealersTabContent', getElemHeight('.map-svg'), 190)})
查看完整描述

1 回答

?
Smart貓小萌

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

將值傳遞給函數(shù)就可以了,除非元素的高度隨時(shí)間變化。

如果它發(fā)生變化,您將需要在每次調(diào)用事件處理程序時(shí)重新計(jì)算高度。如果沒(méi)有,您可以只傳遞值,因?yàn)闊o(wú)論如何它總是使用相同的值。

另外,這一行:

 let elemHeight = callback

如果callback是一個(gè)函數(shù),這實(shí)際上并不調(diào)用回調(diào),它只是將函數(shù)分配給一個(gè)新變量。
如果你想elemHeight獲得返回值,你需要這樣做:

 let elemHeight = callback() // <== Notice the parenthesis

如果它是一個(gè)值,您可能想要更改名稱(chēng)。

至于開(kāi)閉原則,我認(rèn)為在 JS 作為一種動(dòng)態(tài)的、弱類(lèi)型的語(yǔ)言中,這可能主要適用于模塊而不是特定的代碼片段。在 JS 中創(chuàng)建封裝和只允許在某些地方進(jìn)行擴(kuò)展有一些技巧,但通常你可以在任何地方插入任何你想要的東西,所以我不擔(dān)心它。


查看完整回答
反對(duì) 回復(fù) 2023-02-17
  • 1 回答
  • 0 關(guān)注
  • 129 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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