在jQuery中,“ jQuery(…)”和“ jQuery.post(…)”都是正确且有效的吗? [重复]

问题描述 投票:0回答:1
在jQuery中,我们可以以美元符号作为函数的方式使用美元符号:

$(selector);

我们也可以将其用作对象,例如:

$.post(...);

我试图了解这是如何完成的(以及JavaScript的工作原理)。浏览器说typeof($)(当$表示jQuery时)是“函数”。谁能给我一个最简单的可能的代码(用纯[纯] JS),其中一个定义了一些变量(可以引用JS中的函数,对象或其他任何东西),比方说jQ,这样两个代码:

jQ(some_args);

以及

jQ.method(args);

是正确的并且可以按照我们的意愿工作吗?例如,让jQ(selector)返回与选择器兼容的DOM对象的集合;然后让jQ.wri(text)起作用:console.log(wri)。我对一个不太复杂的示例感兴趣。预先感谢您的回答。    
javascript jquery prototype
1个回答
2
投票
相当简单,创建函数后只需设置属性:

function Foo (argument) { console.log("called main Foo with", argument) } Foo.bar = function (bargument) { console.log("called bar with", bargument) } Foo('hello') Foo.bar('is it me you ar looking for?')
您还可以使用Object.defineProperty在属性上设置更多元数据,例如可修改或可枚举等。

函数在大多数方面都是javascript中的对象,如您所见,具有可修改的属性。您可以使用Object.definePropertyseal对象来防止添加或更改属性,但是默认情况下不密封功能。数字也具有属性,但是默认情况下会被密封/冻结。函数是其他对象的特殊功能,因为它们是使对象“可调用”的唯一方法,这大概就是为什么它们没有数组seal freeze的原因。

© www.soinside.com 2019 - 2024. All rights reserved.