1 回答
TA贡献1830条经验 获得超9个赞
其实这个时候用闭包,来封闭你的所谓认为 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;
}
};
}
// using
var bus = new Bus();
bus.start();
console.log(bus.getC());
或许ES6才是你应该去看!
添加回答
举报
