我正在尋找裝飾功能。例如,裝飾函數可以使sum()函數返回一個雙重和。但下面的代碼不能按需要工作,我將'f'改爲'sum',請參閱相關行的評論,爲什麼我不能改變它?爲什麼這個javascript裝飾功能不起作用?
<script>
function doublingDecorator(f) {
return function() {
return 2*sum.apply(this, arguments); // the original code is: return 2*f.apply(this,arguments) I changed to sum, then doesn't work.
}
}
// Usage:
function sum(a, b) {
return a + b
}
var sum = doublingDecorator(sum); // sum gets decoration
alert (sum(3,4)); //return 14
</script>
這使得沒有任何意義,只是行'VAR總和= doublingDecorator(總和);'是莫名其妙的,要創建具有相同的名稱作爲您的可變的,覆蓋整個功能和傳球該功能的其他功能? – adeneo 2014-11-06 16:59:57