为什么angularJs中的$ http可以被视为对象和函数?

时间:2016-03-05 00:52:59

标签: javascript angularjs oop

$ http服务可以两种不同的方式使用

  

作为函数var promise = $http(config);其中config对象包含有关http方法和网址等的信息

  

作为对象$http.get(url,config)

我知道javascript中的函数也是对象...但我不知道如何创建一个可以用作函数调用的对象,我可以使用javascript实现这一点,还是特定于角度的东西?

2 个答案:

答案 0 :(得分:2)

$http本身就是一个函数,因为函数是对象,所以它们可以为它附加额外的属性。

自己也不难:

var func = function() { alert("I am func"); };
func.prop = function() { alert("I am prop"); };

func();
func.prop();

答案 1 :(得分:1)

函数是JavaScript中的第一类对象,因此它们也可以具有属性(属性可以是函数):

function T () {
    console.log("fired")
}

T.Prop = "SDLFKJ";

console.log(T.Prop);

JsFiddle