使用jQuery时是否有用于声明函数的特殊语法?

时间:2012-12-10 10:41:06

标签: javascript jquery function

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

他告诉我的是:

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

并像这样使用它:

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

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

我认为上面的例子可能是一个带有“自定义”命名空间的函数?我不确定。

无论如何,我的问题是:在使用jQuery时是否有指导/最佳实践来定义函数? (以及(dis)优势是什么)

非常感谢!

3 个答案:

答案 0 :(得分:4)

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

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

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

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

答案 1 :(得分:1)

对于define函数,使用jQuery不是必需的。只需用旧方式定义一个函数:

function myCoolFunc() {
    // your code here
}

现在,jQuery只是一个Object(名为$)......所以,如果你有这个:

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调用该函数。在函数内部,您拥有作为DOM元素的范围(this)。

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

答案 2 :(得分:0)

别担心,仍然专注....

你写一个函数的方法是真的...... 因为$jQuery是在页面加载时声明的变量.... 我认为他讲的是特殊语法...

特殊语法是:

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

上面的代码确保此函数是否为jquery插件

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

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

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

包含选择器

希望有所帮助