我正在寻找装饰功能。例如,装饰函数可以使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