javascript - 如果就一行代碼 但是很多地方復(fù)用 這種情況怎么處理呢 封裝成一個(gè)全局方法嗎 還是直接寫?~
問題描述
location.assign(’http://www.bing.com’);
假如就是一句跳頁的代碼 登陸或某某邏輯成功后都要執(zhí)行的 需要封裝成全局方法嗎?就一句真的有必要嗎?
或者說充分利用編輯器的全局替換等功能 還能提高點(diǎn)性能 雖然微乎其微~
問題解答
回答1:如果沒有邏輯上的判斷,就一個(gè)跳轉(zhuǎn)地址,就放到常量吧,如果有業(yè)務(wù)的邏輯判斷,就封裝。
回答2:如果是單純的跳轉(zhuǎn)邏輯,那么不用封裝成單獨(dú)的方法,可以講連接放在一個(gè)的常量文件中。因?yàn)槟氵@里說了,就一句話邏輯,所以這里不會(huì)有邏輯變化,而可能變化的就是連接地址,為了統(tǒng)一管理,那么就放在單獨(dú)的常量文件中去。
如果這個(gè)跳鏈過程有自己的邏輯判斷,比如什么條件跳那個(gè)地址這樣。那么就可以封裝成方法,供其他地方調(diào)用。這樣這塊邏輯變化時(shí)只用修改一個(gè)地方。
所以是否封裝,和封裝什么,是根據(jù)可能變化的需求而定的
回答3:上個(gè)項(xiàng)目我是都直接寫了,覺得并沒有必要封裝。而且能不能提高性能講道理我是不確定的,我自己沒比較過。
回答4:封裝代碼是為了減少代碼的重復(fù),對(duì)于一行代碼,封裝或者不封裝都差不多,因?yàn)槟惴庋b了,引用它也要再寫一段代碼,代碼量也沒太大變化。
回答5:前提:有這么一段代碼是很多地方都用到的,而且不存在很多每個(gè)地方個(gè)性化的改變
如果是我,我會(huì)放到一個(gè)地方,然后統(tǒng)一從一個(gè)地方調(diào)用(可以是全局,也可以是util之類),目的是為了:
減少以后可能會(huì)有的擴(kuò)展的難度。萬一以后發(fā)現(xiàn)需要加更多的東西,那么改起來方便
減少修改時(shí)的工作量。如果要改href,那么就不需要一個(gè)一個(gè)找去替換,減少出錯(cuò)的可能
便于debug。你可以準(zhǔn)確的知道是從哪里跳轉(zhuǎn)的,而不是很多地方都可能跳轉(zhuǎn)。如果莫名其妙跳轉(zhuǎn),打斷點(diǎn)就直接打到這一個(gè)地方,然后向上找就能找到問題所在。而不是需要打很多斷點(diǎn)到不同的地方。
這種簡(jiǎn)單的邏輯,明顯代碼的方便簡(jiǎn)潔的作用遠(yuǎn)遠(yuǎn)大于代碼的性能,所以我不會(huì)考慮性能的問題
相關(guān)文章:
1. mysql - 連續(xù)的24條sql語句,一條條查,還是union all好?2. phpStudy怎么把mysql升級(jí)到7.x3. php - mysql連表統(tǒng)計(jì)查詢4. mysql建表報(bào)錯(cuò),查手冊(cè)看不懂,求解?5. mysql - mybatis 查詢 統(tǒng)計(jì)某個(gè)列數(shù)量 ,根據(jù)一個(gè)列,分組查詢,在xml文件如何接收6. 好奇,求大神解答,類似淘寶的大購物量網(wǎng)站,訂單數(shù)據(jù)表該怎么設(shè)計(jì)?7. vue打包和PHP后臺(tái)怎樣同域名部署配置8. Navicat for mysql 中以json格式儲(chǔ)存的數(shù)據(jù)存在大量反斜杠,如何去除?9. mysql - 在PHPMyadmin上亂搗鼓后出現(xiàn) 了 - #2002 - — 服務(wù)器沒有響應(yīng)(或本地服務(wù)器的套接字沒有正確設(shè)置)。10. php多任務(wù)倒計(jì)時(shí)求助
