转载 jQuery和js自定义函数和文件的方法(全网最全)

jQuery和js自定义函数和文件的方法(全网最全)

 版权声明:本文为像雾像雨又像风_http://blog.csdn.net/topdandan的原创文章,未经容许不得转载。 https://blog.csdn.net/Topdandan/article/details/81484731

咱们在编写jQuery或者js的时候经常要自定义函数,而且写入一个js文件中,方便引入html中调用。那么就涉及到如何在js文件中书写jQuery和js自定义函数的问题了。html

在介绍自定义函数以前必须先来了解下js的自执行函数。jquery

1、js自执行函数介绍

咱们一般将JS代码写在一个单独的JS文件中,而后在页面中引入该文件。可是,有时候引入后会碰到变量名或函数名与其它JS代码冲突的问题。那么如何解决这个问题呢?做用域隔离。在JS中,做用域是经过函数来划分的,将JS代码封装到函数中进行调用能够避免变量名/函数名冲突的问题,可是这也并非万无一失,由于封装函数自己有可能和其它函数重名,解决方案:自执行函数。安全

自执行函数是用一对圆括号将匿名函数包起来,加括号(传参)会当即执行。由于函数无名字,实现了做用域的绝对隔离和函数名的冲突问题。建立这个自执行函数,就至关于开辟了一个新的命名空间,使里面的内容与其余空间隔离,这样就减小了js文件中的全局变量与其余全局变量名称相同的风险。函数

自执行函数的几种表现方式:spa

方式1:function外面加括号 (推荐,比较常见):.net

  1.  
    //不带参数的自执行(匿名)函数
  2.  
    ( function() {
  3.  
    alert(x + y);
  4.  
    })();
  5.  
     
  6.  
    //带参数的自执行(匿名)函数
  7.  
    ( function(x, y) {
  8.  
    alert(x + y);
  9.  
    })( 2, 3);

上面建立了一个匿名函数(在第一个括号内),第二个括号用于调用该匿名函数,并传入参数。两个括号都是表达式,是表达式就有返回值,因此能够在后面加一对括号让它们执行.当js的解析器执行到前一个括号后就返回一个函数对象而后连着后面一个括号就构成了一个完整的函数名+(参数)+;的函数执行语句。code

方式2:最前最后加括号 (这是jslint推荐的写法,好处是,能提醒阅读代码的人,这段代码是一个总体)htm

  1.  
    ( function() {
  2.  
    alert( 1);
  3.  
    }());

方式3:function前面加运算符,常见的是!与void 。这样作的目的就是将函数转换成表达式。对象

  1.  
    ! function() {
  2.  
    alert( 1);
  3.  
    }();
  4.  
     
  5.  
    void function() {
  6.  
    alert( 2);
  7.  
    }();

2、js文件的自定义函数

上面介绍了自执行函数,因此咱们能够用它来减小全局变量的使用,提升安全性。因此在js文件中,咱们经常用自执行函数来包裹住咱们的自定义函数。格式以下:blog

  1.  
    //自执行匿名函数
  2.  
    ( function($){
  3.  
    //自定义函数的代码
  4.  
    })(jQuery);

那么自定义函数如何来定义呢,请看下面的方法

方法一:经过在jQuery全局变量中增长函数

  1.  
    //建立:经过在jQuery全局变量中增长函数
  2.  
    ( function($){
  3.  
    //在jQuery这个全局变量对象中增长一个叫myFunction1的函数,函数参数根据须要自定
  4.  
    $.myFunction1= function(x,y){
  5.  
    //函数体
  6.  
    };
  7.  
    $.fn.myFunction2= function(x,y){
  8.  
    //函数体
  9.  
    };
  10.  
    })(jQuery);
  11.  
    //执行
  12.  
    $( function(){
  13.  
    $.myFunction1( 1,2);
  14.  
    });

方法二:经过在jQuery全局变量中扩展程序

  1.  
    //建立两个函数
  2.  
    ( function($){
  3.  
    //建立方法3
  4.  
    jQuery.extend({
  5.  
    "myFunction3":function(){
  6.  
    alert( "个人自定义jquery方法3");
  7.  
    };
  8.  
    });
  9.  
    //建立方法4
  10.  
    jQuery.fn.extend({
  11.  
    "myFunction4":function(){
  12.  
    alert( "个人自定义jquery方法4");
  13.  
    }
  14.  
    });
  15.  
    })(jQuery);
  16.  
    //执行
  17.  
    $( function(){
  18.  
    //执行方法3
  19.  
    $.myFunction3();
  20.  
    //执行方法4
  21.  
    //注意,在执行方法4的时候,必需要对象来调用,好比经过标签选择器$("button").myMethod(args);
  22.  
    $( "对象").myFunction4();
  23.  
    });

注意:经过.fn定义的扩展方法,须要经过jQuery选择器调用,好比经过标签选择器$("button").myMethod(args)。

方法三:建立全局变量,在全局变量里面自定义函数

  1.  
    //在js文件中建立一个全局变量STUDENT,在对象里面自定义一个得到姓名和年龄的方法
  2.  
    var STUDENT={ //或者window.STUDENT,表示是该窗口的全局变量
  3.  
    name: "大哥",
  4.  
    age:"38",
  5.  
    //自定义函数
  6.  
    getNameAndAge: function(){
  7.  
    return "name:"+name,"age:"+age;
  8.  
    }
  9.  
    }
  10.  
    //执行,获取STUDENT对象中的信息
  11.  
    $( function(){
  12.  
    //获取学生的信息
  13.  
    var info=STUDENT.getNameAndAge();
  14.  
    });
相关文章
相关标签/搜索