平時在js中存儲數據的場景仍是不少的,好比:git
var data; $.get("http://demo.com/api", {}, function(res) { data = res; // ... });
這時候ajax獲取的數據被緩存到data中,這種場景及其廣泛。假設忽然這個被改爲一個函數:github
function getData(params) { var data; $.get("http://demo.com/api", params, function(res) { data = res; // ... }); }
這時候想在外面獲取data
,就得修改原來的代碼,一種方式就是把return data
,另外一種是把data
定義到函數外面。ajax
這時候,這個js要被改爲模塊:api
define("getData", function(require, module, exports) { var data; function getData(params) { $.get("http://demo.com/api", params, function(res) { data = res; // ... }); } module.exports = getData; });
這時候悲催了,想在別的模塊使用data
,又得繼續修改代碼,隨着項目增大,代碼越改越亂。緩存
這種狀況,就能夠使用data.js
做爲數據的統一存儲中心:函數
define("getData", function(require, module, exports) { var Data = require("data.js"); function getData(params) { $.get("http://demo.com/api", params, function(res) { Data.set("apiData", res); // ... }); } module.exports = getData; });
在另外一個模塊就能夠這麼獲取數據:ui
var Data = require("data.js"); var apiData = Data.get("apiData");
數據存儲獨立存在於函數模塊,使用起來很是方便。code
Github地址:data.jsget
項目代碼很是很是簡單,可是思路很重要哈~it