javascript - 如何在不使用 new 的情况下创建函数并调用其方法,类似于 jQuery $?

标签 javascript jquery

jQuery 的 $ 是一个函数,但是您可以通过 "." 访问它的方法,就好像它是一个对象一样。有人可以解释一下,例如,我可以通过什么方式在函数 func 中执行此操作?

enter image description here

更明确地说,我打算使用func() 以及func.each() 来举例。

最佳答案

在 javascript 中,函数是对象,您可以为它们附加属性:

function foo() {
    console.log("foo is called!");
}

foo.prop = "Hello, world!";

foo.boo = function() {
    console.log("foo.boo is called!");
}

foo();                  //=> "foo is called!"
console.log(foo.prop);  //=> "Hello, world!"
foo.boo();              //=> "foo.boo is called!"

注意:不过要注意一点,$.each !== $(...).each。第一个是$下的一个属性,而后者属于jQuery的原型(prototype)。它们是两个不同的函数(虽然原型(prototype)中的一个函数调用另一个函数来完成工作,但它们是完全不同的)。

关于javascript - 如何在不使用 new 的情况下创建函数并调用其方法,类似于 jQuery $?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47742779/

相关文章:

javascript - 分形数组语法

javascript - 对焦或模糊时的射击功能(一起)

javascript - 延迟更改 Action jQuery

JavaScript (Postgres DB) - 如何在 WHERE IN ( ) 子句中使用带有数组作为参数的准备语句

Javascript - 未定义不是函数

javascript - jquery=>发送数据

javascript - 我们应该始终保留 JavaScript 内置对象方法的副本吗?

javascript - 如何获取事件信息并将其显示在 FullCalendar.js 的工具提示中?

javascript - 如何在 JavaScript 中迭代数组

Javascript类型从字符串到数字的转换