如何创建一个函数对象jQuery一样

时间:2016-06-20 10:46:06

标签: javascript jquery function object

我想知道jQuery如何制作声明来制作' $'或者' jquery'变量工作两种方式?我不确定我是用正确的词来形容这个,但是我们使用jQuery时的例子:

$.foo()  // $ as object
$(element).foo() //$ as function

对于我的尝试:

var Foo = function Foo (element) {}

Foo.prototype.A = function (){}

var $ = new Foo;

$.A() // this works

$(element).A() // unable to find defined function A, because $ != $()

function Foo (element) {}

Foo.A = function (){}

var $ = Foo;

$().A() // this works

$.A() // unable to find defined function A, because $() != $

你能告诉我我缺少什么,我怎样才能完成像jQuery那样的事情?

非常感谢!

2 个答案:

答案 0 :(得分:1)

如果你想要$ = new Foo()是一个函数,你必须返回一个函数。

function Foo() {
  // ...
  var f = function(element) {console.log(element)}
  f.someProp = 'value';

  return f;
}

var y = new Foo()
y('bar')
// -> 'bar'
y.someProp
// -> 'value'

答案 1 :(得分:-2)

你可以这样做:

$.fn.foo = function(){
//Your code here
}

$(element).foo();