JS 基礎篇(代理模式)
保護代理
<script>
//主體,傳送
function sendMsg(msg) {
console.log(msg);
}
//代理
function proxySend(msg) {
msg = msg.replace(/XT/, '');
sendMsg(msg);
}
proxySend('XT,辛苦的碼農')
</script>
虛擬代理
<!-- scroll, resize,keyup 等事件頻繁觸發會引起卡頓 -->
function scrollHnader(name,age){
console.log('螢幕滾動了');
}
function debounce2(fn,delay){
delay = delay || 300;
if(fn.id){
clearTimeout(fn.id);
}
fn.id = setTimeout(function(){
fn();
},delay);
}
window.onscroll = function(){
debounce2(scrollHnader.bind(this,'laney'),500);
}
快取代理
function add(){
var arg = Array.from(arguments); //es6
return arg.reduce(function(a,b){
return a+b;
})
}
var proxyAdd = (function(){
var cache = [];
return function(){
var arg = Array.from(arguments).join(',');
if(cache[arg]){
return cache[arg];
} else {
var ret= add.apply(this,arguments);
cache[arg] = ret;
return ret;
}
}
})();
var k1= proxyAdd(1,2,3,4)
proxyAdd(10,20,30,40)
proxyAdd(10,20,30,40)//取快取
proxyAdd(10,20,30,40)//取快取
相關文章
- JS 基礎篇(五):JS嚴格模式JS模式
- Java基礎之代理模式Java模式
- JS 基礎篇(策略模式-表單驗證案例)JS模式
- JS基礎入門篇( 一 )JS
- JS基礎入門篇(一)JS
- Java基礎篇--設計模式Java設計模式
- js設計模式--代理模式JS設計模式
- 前端基礎面試題@JS篇前端面試題JS
- js基礎之程式碼篇1.0JS
- js基礎之定義篇1.0JS
- JS 基礎篇(十) cookie封裝JSCookie封裝
- JS設計模式四:代理模式JS設計模式
- JAVA-Spring AOP基礎 - 代理設計模式JavaSpring設計模式
- JS基礎入門篇(十)—字串方法JS字串
- JS基礎入門篇(十八)—日期物件JS物件
- JS基礎入門篇(七)—運算子JS
- JS 基礎篇(七):JS中的遍歷函式JS函式
- JS基礎入門篇(十)— 陣列方法JS陣列
- JS 基礎篇(一):建立物件的四種方式JS物件
- 全網最詳bpmn.js教材-基礎篇JS
- js基礎JS
- js 基礎JS
- web_前端開發JS框架篇-Vue基礎入門版-基礎語法Web前端JS框架Vue
- JS基礎入門篇(三十六)—物件導向( 三 )JS物件
- JS基礎入門篇(二十)—事件物件以及案例(二)JS事件物件
- 安心學習,重學前端之(js基礎篇(1))前端JS
- 【web前端基礎 | JS基礎】物件Web前端JS物件
- Python基礎篇-Python基礎01Python
- JS·基礎(一)JS
- JS基礎 ---事件JS事件
- js基礎文件JS
- js代理模式理解和應用場景JS模式
- JS基礎知識(覆蓋JS基礎面試題)JS面試題
- 《JavaScript設計模式與開發實踐》模式篇(3)—— 代理模式JavaScript設計模式
- 前端日拱一卒D12——js基礎篇前端JS
- vuex - 基礎篇Vue
- Docker|基礎篇Docker
- Hbase基礎篇