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模式
- Java基礎篇--設計模式Java設計模式
- JS基礎入門篇( 一 )JS
- JS基礎入門篇(一)JS
- 前端基礎面試題@JS篇前端面試題JS
- js設計模式--代理模式JS設計模式
- js基礎之程式碼篇1.0JS
- js基礎之定義篇1.0JS
- JS 基礎篇(十) cookie封裝JSCookie封裝
- vuejs深入淺出—基礎篇VueJS
- JAVA-Spring AOP基礎 - 代理設計模式JavaSpring設計模式
- JS設計模式四:代理模式JS設計模式
- JS基礎入門篇(十)—字串方法JS字串
- JS基礎入門篇(十八)—日期物件JS物件
- JS基礎入門篇(七)—運算子JS
- JS 基礎篇(七):JS中的遍歷函式JS函式
- Java 基礎(十九)代理Java
- 【Java基礎】代理 - ProxyJava
- JS基礎入門篇(十)— 陣列方法JS陣列
- React基礎篇-02.JSX簡介ReactJS
- JS基礎篇–正規表示式詳解JS
- 基礎篇
- 全網最詳bpmn.js教材-基礎篇JS
- JS 基礎篇(一):建立物件的四種方式JS物件
- 【基礎篇索引】索引基礎(四)索引
- 【基礎篇索引】索引基礎(三)索引
- 【基礎篇索引】索引基礎(二)索引
- 【基礎篇索引】索引基礎(一)索引
- js 基礎JS
- js基礎JS
- vuex - 基礎篇Vue
- Docker|基礎篇Docker
- Maven——基礎篇Maven
- Git——基礎篇Git
- Hbase基礎篇
- Java基礎篇Java