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才是你應該去看!
添加回答
舉報