当数据格式要求等发生变化时我们往往采用适配器模式
小例子
function getBeijingCity() { var address = [ {name:'chaoyang',id:101}, {name:'haiding',id:102} ] return address }
//我们原来要求的数据格式为[{name: ,id: }.....] //当我们对数据的要求发生变化时 //比如变成了 //{name:id,.....} //即可以通过适配器函数来改变数据的结构
function addressAdapter(oldFn){ var oldAddress = oldFn(), //原数据 newAddress = {}, item for(var i = 0; i<oldAddress.length; i++){ item = oldAddress[i] newAddress[item.name] = item.id } return function(){ return JSON.stringify(newAddress) } }
假定存在一个渲染函数方便我们观察结果
function rend(fn){ console.log("开始渲染"); console.log(fn()); console.log('结束渲染'); } //rend(getBeijingCity) //适配前 rend(addressAdapter(getBeijingCity)) //适配后