javascript - 如果就一行代碼 但是很多地方復(fù)用 這種情況怎么處理呢 封裝成一個(gè)全局方法嗎 還是直接寫(xiě)?~
問(wèn)題描述
location.assign(’http://www.bing.com’);
假如就是一句跳頁(yè)的代碼 登陸或某某邏輯成功后都要執(zhí)行的 需要封裝成全局方法嗎?就一句真的有必要嗎?
或者說(shuō)充分利用編輯器的全局替換等功能 還能提高點(diǎn)性能 雖然微乎其微~
問(wèn)題解答
回答1:如果沒(méi)有邏輯上的判斷,就一個(gè)跳轉(zhuǎn)地址,就放到常量吧,如果有業(yè)務(wù)的邏輯判斷,就封裝。
回答2:如果是單純的跳轉(zhuǎn)邏輯,那么不用封裝成單獨(dú)的方法,可以講連接放在一個(gè)的常量文件中。因?yàn)槟氵@里說(shuō)了,就一句話(huà)邏輯,所以這里不會(huì)有邏輯變化,而可能變化的就是連接地址,為了統(tǒng)一管理,那么就放在單獨(dú)的常量文件中去。
如果這個(gè)跳鏈過(guò)程有自己的邏輯判斷,比如什么條件跳那個(gè)地址這樣。那么就可以封裝成方法,供其他地方調(diào)用。這樣這塊邏輯變化時(shí)只用修改一個(gè)地方。
所以是否封裝,和封裝什么,是根據(jù)可能變化的需求而定的
回答3:上個(gè)項(xiàng)目我是都直接寫(xiě)了,覺(jué)得并沒(méi)有必要封裝。而且能不能提高性能講道理我是不確定的,我自己沒(méi)比較過(guò)。
回答4:封裝代碼是為了減少代碼的重復(fù),對(duì)于一行代碼,封裝或者不封裝都差不多,因?yàn)槟惴庋b了,引用它也要再寫(xiě)一段代碼,代碼量也沒(méi)太大變化。
回答5:前提:有這么一段代碼是很多地方都用到的,而且不存在很多每個(gè)地方個(gè)性化的改變
如果是我,我會(huì)放到一個(gè)地方,然后統(tǒng)一從一個(gè)地方調(diào)用(可以是全局,也可以是util之類(lèi)),目的是為了:
減少以后可能會(huì)有的擴(kuò)展的難度。萬(wàn)一以后發(fā)現(xiàn)需要加更多的東西,那么改起來(lái)方便
減少修改時(shí)的工作量。如果要改href,那么就不需要一個(gè)一個(gè)找去替換,減少出錯(cuò)的可能
便于debug。你可以準(zhǔn)確的知道是從哪里跳轉(zhuǎn)的,而不是很多地方都可能跳轉(zhuǎn)。如果莫名其妙跳轉(zhuǎn),打斷點(diǎn)就直接打到這一個(gè)地方,然后向上找就能找到問(wèn)題所在。而不是需要打很多斷點(diǎn)到不同的地方。
這種簡(jiǎn)單的邏輯,明顯代碼的方便簡(jiǎn)潔的作用遠(yuǎn)遠(yuǎn)大于代碼的性能,所以我不會(huì)考慮性能的問(wèn)題
相關(guān)文章:
1. MySQL中無(wú)法修改字段名的疑問(wèn)2. angular.js - angular內(nèi)容過(guò)長(zhǎng)展開(kāi)收起效果3. javascript - 如何讓移動(dòng)端網(wǎng)頁(yè)的輸入框固定在底部?4. 大家好,請(qǐng)問(wèn)在python腳本中怎么用virtualenv激活指定的環(huán)境?5. android - QQ物聯(lián),視頻通話(huà)6. python的前景到底有大?如果不考慮數(shù)據(jù)挖掘,機(jī)器學(xué)習(xí)這塊?7. mysql - 怎么讓 SELECT 1+null 等于 18. javascript - 微信小程序封裝定位問(wèn)題(封裝異步并可能多次請(qǐng)求)9. 網(wǎng)頁(yè)爬蟲(chóng) - 用Python3的requests庫(kù)模擬登陸B(tài)ilibili總是提示驗(yàn)證碼錯(cuò)誤怎么辦?10. 請(qǐng)教各位大佬,瀏覽器點(diǎn) 提交實(shí)例為什么沒(méi)有反應(yīng)
