【问题标题】:Why $http in angularJs can be treated as object and function?为什么 angularJs 中的 $http 可以被视为对象和函数?
【发布时间】:2016-03-05 00:52:59
【问题描述】:

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

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

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

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

【问题讨论】:

  • 创建一个函数并将其用作对象。这里的所有都是它的。它与 Angular 无关。

标签: javascript angularjs oop


【解决方案1】:

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

做自己也不难:

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

func();
func.prop();

【讨论】:

  • 我可以在函数定义中添加属性而不是事后做吗?
  • @watashiSHUN:不是这样。函数定义中的代码在实际调用函数之前不会运行,因此在其中放任何东西都行不通。
【解决方案2】:

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

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

T.Prop = "SDLFKJ";

console.log(T.Prop);

JsFiddle

【讨论】:

    猜你喜欢
    • 2016-05-17
    • 2011-08-10
    • 1970-01-01
    • 2019-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多