起初 - 对不起我糟糕的英语。我必须练习它,并将尽我所能。
我会在 javascript 中为我尝试一些新的东西。我得到了 jQuery 库的想法。那里有两个
使用“jQuery”或“$”的不同方式。
jQuery(arg).foo(); // first way
jQuery.foo(); // second way
现在我想对一个对象做同样的事情。
obj(arg).foo();
obj.foo();
我的第一个问题是:jQuery 如何成为一个返回对象并成为
一样的方法 ?
obj(arg).foo();
看起来像一个返回对象的函数。但
obj.foo();
看起来像一个物体。
我尝试了一些与 obj.foo() 和 obj().foo() 一起使用的东西,但没有任何效果 - 无论如何我尝试了一些返回错误的东西: foo() 未定义。
你知道 jQuery 是如何解决它的,以这种不正常的方式注册变量 jQuery 吗?
以下是我想要实现的(代码确实有效!):
myClass = function () {
this.foo() {
window.alert('foo()!');
return this;
}
}
var myObj = new myClass();
function obj() {
return myObj.foo(arguments);
}
var obj = {
secondFoo : function () {
myObj.foo();
}
};
obj('arg').foo(); // alert(foo()!) && alert(foo()!)
obj.secondFoo(); // alert(foo()!)
obj('arg'); // alert(foo()!)