1

我找不到任何关于此的参考,我看到了许多不同的方法。有人告诉我,如果你在项目中使用 jquery,你应该使用“特殊”语法来定义你的函数。

他告诉我的是这样的:

$.functionName = function (var1, var2){
       //your code
};

并像这样使用它:

$.functionName("Test", "Test");

但后来我开始寻找使用 jQuery 时定义函数的指南或最佳实践。我发现了这个:jquery4u.com

我认为上面的示例可能是具有“自定义”命名空间的函数?我不知道。

无论如何,我的问题是:当您使用 jQuery 时,是否有定义函数的指南/最佳实践?(以及有什么(缺点)优点)

非常感谢!

4

3 回答 3

4

在您的项目中使用 jQuery 并不意味着您应该更改您在项目中使用的 Javascript 的所有内容。jQuery 是一个库,它不是一个框架。

常规函数应该以普通方式定义:

function functionName(var1, var2){
  //your code
};

您可能会考虑将函数放在对象中以保持全局范围尽可能干净,但是将每个函数放在 jQuery 对象中使用$.functionName=...并不比将它们放在全局范围中更好。

于 2012-12-10T10:49:26.933 回答
1

对于定义函数不是必须使用 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,在第二种情况下,您拥有myCoolFuncjQuery 对象($jQuery)的属性。

是什么$.fn

$.fn是 jquery 对象的原型。

要拥有这个:

$.fn.myCoolFunc = function() {
    // your code here
}

和以前的案例不一样。在这种情况下,您为 jquery 实例声明一个公共方法。要调用这个,你必须这样做:

$('div').myCoolFunc();
// and not $.myCoolFunc();

在这种情况下,为 DOM 中的每个 div 调用该函数。在函数内部,您拥有作为thisDOM 元素的范围 ()。

最后,在某些情况下,在 jQuery 对象(如命名空间)中插入一个函数可能是有意义的。如果你想要一个函数来操作 DOM 中的某些元素,你应该使用$.fn.myFunc(作为最佳实践)。在其他情况下,将您的函数放在全局范围内(或封装在其他对象中)会更快且更符合逻辑

于 2012-12-10T12:17:34.373 回答
0

别着急,还是专注吧……

您编写函数的方式是正确的......因为$orjQuery是在页面加载时声明的变量......我认为他讲述了特殊语法......

特殊语法是:

(function($) {
    $.functionName = function (var1, var2){
    //your code
    };
})(jQuery);

上面的代码用于确定这个函数是否是 jquery 插件

$.functionName = function (var1, var2){
   //your code
};

上面的代码是定义没有选择器的函数和

$.fn.functionName = function (var1, var2){
   //your code
};

用于包括选择器

希望有帮助

于 2012-12-10T10:55:39.870 回答