我想知道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那样的事情?
非常感谢!
答案 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();