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

Javascript 为什么angularJs中的$http可以被视为对象和函数?,javascript,angularjs,oop,Javascript,Angularjs,Oop,$http服务可以以两种不同的方式使用 作为一个函数,var promise=$http(config)其中配置对象包含有关http方法和url等的信息 或 作为对象,$http.get(url,config) 我知道javascript中的函数也是对象……但我不知道如何创建一个可以用作函数调用的对象,我可以只使用javascript来实现这一点,还是说它是angular特有的?$http本身就是一个函数,因为函数是对象,所以它们可以为它附加额外的属性 自己动手也不难: var func=fu

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

作为一个函数,
var promise=$http(config)其中配置对象包含有关http方法和url等的信息

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


我知道javascript中的函数也是对象……但我不知道如何创建一个可以用作函数调用的对象,我可以只使用javascript来实现这一点,还是说它是angular特有的?

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

自己动手也不难:

var func=function(){alert(“I am func”);};
func.prop=function(){alert(“我是prop”);};
func();

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

自己动手也不难:

var func=function(){alert(“I am func”);};
func.prop=function(){alert(“我是prop”);};
func();

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


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


创建函数并将其用作对象。就这些。它与角度无关。创建一个函数并将其用作对象。就这些。它与Angular无关。我可以在函数定义中添加属性,而不是在函数定义之后添加属性吗?@watashiun:不太可能。函数定义中的代码在函数真正被调用之前不会运行,因此在函数定义中添加任何内容都不会起作用。我可以在函数定义中添加属性,而不是在函数定义之后添加属性吗?@watashisun:不可以。函数定义中的代码在函数实际被调用之前不会运行,因此在其中放入任何内容都不会起作用。
function T () {
    console.log("fired")
}

T.Prop = "SDLFKJ";

console.log(T.Prop);