对象和函数之间的混淆 - JavaScript

时间:2015-11-05 17:34:29

标签: javascript jquery

我是JavaScript的新手,我想了解一些东西,例如在jQuery中我们有jQuery对象(通常称为$),但我在这里很困惑:

在jQuery中,当我们想要选择DOM节点时,我们使用jQuery选择器,例如:

$('div');

但是当我们想要向服务器发帖时,我们称之为:

$.post({...});

我的问题是,对象如何同时表现为函数和对象?当我使用$('div')时,我正在调用一个函数,当我使用$.post({...})时,我正在访问一个对象内的函数。

2 个答案:

答案 0 :(得分:3)

$( "h1" ).remove();

大多数jQuery方法都是在jQuery对象上调用的,如上所示;据说这些方法是$.fn命名空间或“jQuery原型”的一部分,最好被认为是jQuery对象方法。

但是,有几种方法不对选择起作用;据说这些方法是 jQuery命名空间的一部分,最好被认为是核心jQuery方法。

这种区别对于新的jQuery用户来说可能会令人难以置信。以下是您需要记住的内容:

1) 调用jQuery选择的方法位于$.fn命名空间中,并自动接收并返回选择。

2) $命名空间中的方法通常是实用程序类型的方法,不适用于选择;它们不会自动传递任何参数,它们的返回值也会有所不同。

答案 1 :(得分:0)

总结:函数对象。

function foo() {
    alert("bar");
}

foo.bar = "foobar";

alert(foo.bar);
foo();
alert(foo);

它们只是您可以添加()来调用/运行的特殊对象。