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 - 面試題:如何把login_log表轉(zhuǎn)換成last_login表?2. html5 - iphone5手機(jī),微信中無法打開優(yōu)酷鏈接?3. javascript - 為什么嵌套的Promise不能按預(yù)期捕獲Exception?4. javascript - nodejs實(shí)現(xiàn)異步時(shí)遇到的一個(gè)問題5. 剛放到服務(wù)器的項(xiàng)目出現(xiàn)這中錯(cuò)誤,有高手指點(diǎn)嗎6. apache - 想把之前寫的單機(jī)版 windows 軟件改成網(wǎng)絡(luò)版,讓每個(gè)用戶可以注冊(cè)并登錄。類似 qq 的登陸,怎么架設(shè)服務(wù)器呢?7. javascript - 編程,算法的問題8. css3 - Typecho 后臺(tái)部分表單按鈕在 Chrome 下出現(xiàn)靈異動(dòng)畫問題,求解決9. python 操作mysql如何經(jīng)量防止自己的程序在之后被惡意注入(說白了就是問一下python防注入的一些要點(diǎn))10. css - 手機(jī)qq打開網(wǎng)頁無法使用文件上傳功能?
