在學習的時候
讀到 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