对于定义函数不是必须使用 jQuery。只需以旧方式定义一个函数:
function myCoolFunc() {
// your code here
}
现在,jQuery 只是一个对象(命名为$
)......所以,如果你有这个:
var myObj = {}
myObj.myCoolFunc = function() {
//your code here
}
myObj.myCoolFunc();
或者如果你有这个:
// include jQuery <script ...
$.myCoolFunc = function() {
// your code here
}
$.myCoolFunc();
是一样的..唯一的区别是,在第一种情况下,您拥有对象myCoolFunc
的属性myObj
,在第二种情况下,您拥有myCoolFunc
jQuery 对象($
或jQuery
)的属性。
是什么$.fn
?
$.fn
是 jquery 对象的原型。
要拥有这个:
$.fn.myCoolFunc = function() {
// your code here
}
和以前的案例不一样。在这种情况下,您为 jquery 实例声明一个公共方法。要调用这个,你必须这样做:
$('div').myCoolFunc();
// and not $.myCoolFunc();
在这种情况下,为 DOM 中的每个 div 调用该函数。在函数内部,您拥有作为this
DOM 元素的范围 ()。
最后,在某些情况下,在 jQuery 对象(如命名空间)中插入一个函数可能是有意义的。如果你想要一个函数来操作 DOM 中的某些元素,你应该使用$.fn.myFunc
(作为最佳实践)。在其他情况下,将您的函数放在全局范围内(或封装在其他对象中)会更快且更符合逻辑