こんにちは。ジャンキーなものが食べたい、きたけーです。 AngularJSでは、アプリ内で共通な値やロジックをまとめたものを「サービス」と呼んでいますが、それを定義する service と factory が紛らわしかったのでメモ。 どちらもシングルトンオブジェクト AngularJSのサービスは基本的にシングルトンオブジェクトで、service、factory で定義したどちらのサービスもシングルトンオブジェクトです。 factoryという名前で、「DIでコントローラに注入されるたびにオブジェクトが生成されるのでは?」とか思っちゃうけどそういうわけではない。 違いは? factory の場合は、第二引数の関数が返した値をシングルトンオブジェクトとして扱う。(ただの数値とか文字列の場合は value とか const みたいなのもある) service の場合は、第二引数の関数をコンストラ