factory、service 和 provider 是什么关系?

发布于 2020-01-14 23:42:57
关注者
0
被浏览
565
1 个回答
  • 面试哥
    面试哥 2020-01-14
    为面试而生,有面试问题,就找面试哥。

    factory , service , provider都是angular 提供的服务 factory就是原生js里的方法,一个简单的函数 service类似原生里构造函数的过程,拥有一个构造器constructor,也就是说有 new的过程,追加属性和方法都是在this上追加的 provider是服务商当service需要配置的时候,需要使用provider提供服务,例如当使用angular进行跨域访问,需要配置jsonp信息的时候,就可以使用provider进行config的配置,简单理解是service的高级版本,provider提供一个$get的属性来返回 $provider的实例 他们都是单例模式,只实例化一次

    个人理解 : provider > service > factory factory用来配置简单的服务 service是在factory的基础之上加入了面向对象的思想,提供更多功能的服务 provider是在service的基础上进一步改进配置信息 factory与service在底层代码上都来源于provider

    例子介绍: 我可以在factory里写一个http()请求,不做任何配置,参数写死我可以在service里写一个 http( )请求,不做任何配置,参数写死我可以在service里写一个http()请求,不做任何配置,参数写死我可以在service里写一个http( )请求,传入请求的参数可以先配置在this的属性上传入方法 我可以在provider里写一个请求,然后在config上传入要配置的参数,URL, method,data等信息,通过config来修改provider的参数,再将服务商提供的服务注入控制器controller

    注意事项: config里传入的参数是nameProvider而不是name,也就是说你的叫做 myProvider, config 里传入的参数就是myProviderProvider而不是myProvider

知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看