代码优化疑惑

一句话概括就是代码高耦合了, 需求稍微有点变化, 就会牵涉到改很多代码, 维护起来感觉好困难, 虽然效果什么的实现了, 但是代码特别差, 求大神指导.
举个例子:
我目前写的代码是这样的:

function start() {

    var data = null

    $.get('/s/api..', function(res) {

        data = res

    })

    ...一堆逻辑后用two方法

    two(data)    

}

function two(data) {

    逻辑....然后用到了thr方法

    thr(data.a, data.b)

}

function thr(a, b) {

    var thrA = null

    ...一对逻辑后for(a, b, thrA)

}

function for(a, b, thrA) {

    ...逻辑代码

}

这样编写的代码之间高耦合, 需求变化什么的都很难维护.
假如thr想直接用start中的属性c,我想到就是传给two再传给thr,因为start不需要用到thr方法, 但需求修改后发现thr又需要用到start请求的数据; 如果用全局的话就会有很多var, 貌似影响性能, 求教怎么优化自己的代码, 怎么解耦, 有什么好的书推荐吗. 
可能我描述的问题不是太清楚, 总之就是代码之间高耦合, 如何让代码低耦合

慕田峪7331174
浏览 486回答 1
1回答

慕标琳琳

其实这个时候用闭包,来封闭你的所谓认为 var 会影响性能,是最好不够。例如:(function() {    var c;    function start() {        var data = null        $.get('/s/api..', function(res) {            data = res        })        ...一堆逻辑后用two方法        two(data)            // using c    }    function two(data) {        逻辑....然后用到了thr方法        thr(data.a, data.b)        // using c    }    function thr(a, b) {        var thrA = null        ...一对逻辑后for(a, b, thrA)        // using c    }    function for(a, b, thrA) {        ...逻辑代码        // using c    }})();但,有时会你又希望这个闭包,可能有些东西是需要被外部使用的。那么,可以改装成类:var Bus = function(options) {    var c;    function start() {        var data = null        $.get('/s/api..', function(res) {            data = res        })        ...一堆逻辑后用two方法        two(data)        }    function two(data) {        逻辑....然后用到了thr方法        thr(data.a, data.b)    }    function thr(a, b) {        var thrA = null        ...一对逻辑后for(a, b, thrA)    }    function for(a, b, thrA) {        ...逻辑代码    }        return {        start: start,        getC: function() {            return c;        }    };}// usingvar bus = new Bus();bus.start();console.log(bus.getC());或许ES6才是你应该去看!
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript