JavaScript的apply和裝飾器模式

在學習的時候

讀到 http://www.liaoxuefeng.com/wiki/001434446689867b27157e896e74d51a89c25cc8b43bdb3000/0014345005399057070809cfaa347dfb7207900cfd116fb000

其中這段

裝飾器

利用apply(),我們還可以動態改變函數的行爲。

JavaScript的所有對象都是動態的,即使內置的函數,我們也可以重新指向新的函數。

現在假定我們想統計一下代碼一共調用了多少次parseInt(),可以把所有的調用都找出來,然後手動加上count += 1,不過這樣做太傻了。最佳方案是用我們自己的函數替換掉默認的parseInt()

var count = 0;
var oldParseInt = parseInt; // 保存原函數

window.parseInt = function () {
    count += 1;
    return oldParseInt.apply(null, arguments); // 調用原函數
};

// 測試:
parseInt('10');
parseInt('20');
parseInt('30');
count; // 3

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章