我很困惑。你能澄清一下 angular.extend()和 $ provide.decorator 之间的区别吗? Why and when use the second one?
装饰器是否做了与扩展不同的事情?执行搜索后我找不到任何答案......
答案 0 :(得分:1)
angular.extend()
只是标准JavaScript扩展工具的另一个实现。您可以找到许多其他类似(不相同)的实现,例如Object.assign(),jQuery's,Underscore's ......
$provide.decorator()
虽然是the decorator pattern的Angular实现,但功能更强大,因为它允许您透明地更改提供程序的行为,即无需修改依赖对象。文档中的示例非常简单:每次调用$log.warn()
时,邮件都会自动以'Decorated Warn: '
为前缀。