在 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
但是装饰器设计模式意味着您正在接受一个对象......并修改它?
最佳答案
装饰器是一种通用模式;根据领域的不同,它可能意味着多种含义。
它们也称为“包装器”或“适配器”,IMO 更适用于函数包装范例。也就是说,不要太在意精确的措辞:它们是模式,而不是一成不变的法律。
关于javascript - JavaScript 中 "decorator function"和 "decorator design pattern"有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21414506/