注意事项:代理与本地接口的一致性(代理对象与本地对象需要有对外一致的接口)
应用场景一(图片预加载)
var myImage =(function(){
var imgNode = document.createElement('img')
document.body.appendChild(imgNode)
return {
setSrc(src){
imgNode.src = src
}
}
})()
var proxyImage = (function(){
var img = new Image()
img.onload = function(){
myImage.setSrc(this.src)
}
return {
setSrc(src){
myImage.setSrc('预加载图片地址')
img.src = src
}
}
})()
应用场景二(缓存)
var synchronousFile = function(id){
console.log('开始同步文件,id为'+id)
}
var proxySynchronousFile =(function(){
var cache = [],timer
return function(id){
cache.push(id)
if(timer){
return
}
timer = setTimeout(function(){
synchronousFile(cache.join(','));
clearTimeout(timer)
timer = null
cache.length=0
},2000)
}
})()
给自己的一些话
在拿到项目之时,随着思路下手固然速度快,但是这样代码往往面临一个问题,那就是可维护性差,扩展性差,跟着思路走,往往代码只符合当前思路的逻辑,一旦出现错误,往往在更改时让人烦躁,也会导致代码冗余,所以在写代码之前不要忙于下笔,要运用好自己的所学,写出可扩性,维护性好的代码,加油,你是最棒的