javascript - 如果就一行代碼 但是很多地方復(fù)用 這種情況怎么處理呢 封裝成一個(gè)全局方法嗎 還是直接寫?~
問(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ì)有邏輯變化,而可能變化的就是連接地址,為了統(tǒng)一管理,那么就放在單獨(dú)的常量文件中去。
如果這個(gè)跳鏈過(guò)程有自己的邏輯判斷,比如什么條件跳那個(gè)地址這樣。那么就可以封裝成方法,供其他地方調(diào)用。這樣這塊邏輯變化時(shí)只用修改一個(gè)地方。
所以是否封裝,和封裝什么,是根據(jù)可能變化的需求而定的
回答3:上個(gè)項(xiàng)目我是都直接寫了,覺(jué)得并沒(méi)有必要封裝。而且能不能提高性能講道理我是不確定的,我自己沒(méi)比較過(guò)。
回答4:封裝代碼是為了減少代碼的重復(fù),對(duì)于一行代碼,封裝或者不封裝都差不多,因?yàn)槟惴庋b了,引用它也要再寫一段代碼,代碼量也沒(méi)太大變化。
回答5:前提:有這么一段代碼是很多地方都用到的,而且不存在很多每個(gè)地方個(gè)性化的改變
如果是我,我會(huì)放到一個(gè)地方,然后統(tǒng)一從一個(gè)地方調(diào)用(可以是全局,也可以是util之類),目的是為了:
減少以后可能會(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. angular.js - angular內(nèi)容過(guò)長(zhǎng)展開收起效果2. 關(guān)于nginx location配置的問(wèn)題,root到底是什么3. 關(guān)于docker下的nginx壓力測(cè)試4. angular.js - angularjs的自定義過(guò)濾器如何給文字加顏色?5. docker鏡像push報(bào)錯(cuò)6. python - flask表單 如何把提交多行數(shù)據(jù)在服務(wù)端讀取出來(lái)?7. python 怎樣用pickle保存類的實(shí)例?8. 并發(fā)模型 - python將進(jìn)程池放在裝飾器里為什么不生效也沒(méi)報(bào)錯(cuò)9. python的前景到底有大?如果不考慮數(shù)據(jù)挖掘,機(jī)器學(xué)習(xí)這塊?10. 大家好,請(qǐng)問(wèn)在python腳本中怎么用virtualenv激活指定的環(huán)境?
