JavaScript中的“装饰器功能”和“装饰器设计模式”有什么区别?

时间:2014-01-28 19:03:22

标签: javascript function object decorator

似乎在JavaScript函数中接受一个函数,修改行为并返回该函数是装饰器。例如,这将是装饰器功能:

function doubleDec (func){
    return function(){
        return 2*func.apply(this, arguments)
    }
}
function sum(a, b) {
  return a + b
}

var doubleSum = doubleDec(sum)

alert(doubleSum(1,2))  //=> 6

但装饰设计模式意味着你正在接受一个对象......并修改它?

1 个答案:

答案 0 :(得分:0)

装饰器是一种通用模式;它可能意味着多种不同的东西。

它们也被称为“包装器”或“适配器”,IMO更适用于功能包装范例。也就是说,不要过于依赖精确的措辞:它们是模式,而不是一成不变的法则。