角度扩展vs $ provide.decorator

时间:2017-04-21 14:50:14

标签: javascript angularjs extending angular-decorator

我很困惑。你能澄清一下 angular.extend() $ provide.decorator 之间的区别吗? Why and when use the second one? 装饰器是否做了与扩展不同的事情?执行搜索后我找不到任何答案......

1 个答案:

答案 0 :(得分:1)

angular.extend()只是标准JavaScript扩展工具的另一个实现。您可以找到许多其他类似(不相同)的实现,例如Object.assign()jQuery'sUnderscore's ......

$provide.decorator()虽然是the decorator pattern的Angular实现,但功能更强大,因为它允许您透明地更改提供程序的行为,即无需修改依赖对象。文档中的示例非常简单:每次调用$log.warn()时,邮件都会自动以'Decorated Warn: '为前缀。