如何在维护命名空间的同时创建类似jQuery的方法链接
How can I create jQuery like method chaining while maintaining a namespace?
我在SO上查看了各种回答类似问题的答案,但没有一个真正回答我想要的问题。此处的示例:
jQuery原型和构造函数函数链接
javascript中的基本对象/函数链接是如何工作的?
我希望能够从函数中链接方法,但也可以将该函数用作命名空间。您可以将jquery对象用作如下函数:
$('selector');
但是您也可以直接从$变量中获取方法,比如:
$.ajax(
这是如何实现的?我已经尝试过查找jquery源代码,但几乎不可能找到。
在Javascript中,函数是一流的对象。特别是,它们是对象。
var greet = function(name) {console.log("Hello, " + name + "!"); };
greet.lang = "English";
是合法的。那么以下两项都有效:
greet("Alice"); // prints Hello, Alice!
console.log(greet.lang); // prints English
我认为将$(...)
称为构造函数是不准确的。在Javascript中,构造函数和函数之间的界限是模糊的,但通常我会说构造函数与new
一起使用,按照惯例,它以大写字母开头。$
只是一个对象,尤其是一个可以被调用的函数,并且具有可以访问的其他属性。
我也不会调用$
,或者在我的示例greet
中,一个名称空间。您可能会想到Java中的包语法,其中com.mycompany.util.StringFunctions
将具有包/命名空间com.mycompany.util
,或者在C++中,它可能被写成MyCompany::Util::StringFunctions
。Javascript并没有这个概念,但在或多或少的任何OO语言中,它都可以用对象来模拟,如上所述。我想说$
只是感觉像是一个命名空间,因为它是一个相当大的库,但它是一种巨大的库,它被实现为一个对象,也是一个函数,具有许多属性。
试试这个:
var foo = function (){
alert ("I'm a function beep beep");
};
foo.bar = "This is a string";
foo.otherFoo = function (param) {
alert ("I'm also a function blup blup"+param);
};
然后,您可以调用第一个函数foo()
、变量foo.bar
或值为foo.otherFoo(" and more blup.")
的第二个函数
- jQuery链接未按预期工作
- 使用jQuery链接将鼠标悬停到img标记
- 使用jquery链接可点击性
- Javascript/jQuery链接/href补充的动态文本
- jQuery 链接不起作用
- 带有 OnClick 的 jQuery 链接标记 href 需要单击两次才能加载 AJAX
- 将输入转换为使用 jQuery 链接回去
- CSS/JQuery 链接悬停不会触发
- html5 文件中的 jquery 链接出现问题
- jQuery:链接动画和AJAX请求
- 使用javascript创建Jquery链接
- 点击jquery链接运行php文件
- 由于某种原因,Jquery链接选择器不起作用
- 如何使用Jquery链接函数
- jquery链接与谷歌地图切换
- Jquery链接效果在每次页面加载时只起作用一次
- 动态添加新的selectbox后,多个jquery链接不起作用
- 如何将进度条与.click事件jquery链接
- jquery链接在加载下一页之前单击切换图像
- jQuery链接多个自定义函数来触发多个面板