前言git
一样一个功能,能够用不少方法来实现,有时候因为项目时间紧张,致使不少时候只是实现了功能,每每忽视了代码质量。下面几种代码重构方法,以便你们能够写出更优雅的代码。github
一,提炼函数ajax
var getUserInfo = function(){ ajax( 'http:// xxx.com/userInfo', function( data ){ console.log( 'userId: ' + data.userId ); console.log( 'userName: ' + data.userName ); console.log( 'nickName: ' + data.nickName ); }) }) // 重构后 var getUserInfo = function(){ ajax( 'http:// xxx.com/userInfo', function( data ){ printDetails( data ); }); }; var printDetails = function( data ){ console.log( 'userId: ' + data.userId ); console.log( 'userName: ' + data.userName ); console.log( 'nickName: ' + data.nickName ); };
二,合并重复的条件片断函数
var paging = function( currPage ){ if ( currPage <= 0 ){ currPage = 0; jump( currPage ); }else if ( currPage >= totalPage ){ currPage = totalPage; jump( currPage ); }else{ jump( currPage ); } } // 重构后,把重复函数独立出来 var paging = function( currPage ){ if ( currPage <= 0 ){ currPage = 0; }else if ( currPage >= totalPage ){ currPage = totalPage; } jump( currPage ); };
三,把条件分支语句提炼成函数spa
var getPrice = function( price ){ var date = new Date(); if ( date.getMonth() >= 6 && date.getMonth() <= 9 ){ return price * 0.8; } return price; }; // 重构后,改为可以理解的函数 var isSummer = function(){ var date = new Date(); return date.getMonth() >= 6 && date.getMonth() <= 9; }; var getPrice = function( price ){ if ( isSummer() ){ return price * 0.8; } return price; };
四,合理使用循环
五,提早让函数退出代替嵌套条件分支code
点击更多blog