咱们在编写jQuery或者js的时候经常要自定义函数,而且写入一个js文件中,方便引入html中调用。那么就涉及到如何在js文件中书写jQuery和js自定义函数的问题了。html
在介绍自定义函数以前必须先来了解下js的自执行函数。jquery
咱们一般将JS代码写在一个单独的JS文件中,而后在页面中引入该文件。可是,有时候引入后会碰到变量名或函数名与其它JS代码冲突的问题。那么如何解决这个问题呢?做用域隔离。在JS中,做用域是经过函数来划分的,将JS代码封装到函数中进行调用能够避免变量名/函数名冲突的问题,可是这也并非万无一失,由于封装函数自己有可能和其它函数重名,解决方案:自执行函数。安全
自执行函数是用一对圆括号将匿名函数包起来,加括号(传参)会当即执行。由于函数无名字,实现了做用域的绝对隔离和函数名的冲突问题。建立这个自执行函数,就至关于开辟了一个新的命名空间,使里面的内容与其余空间隔离,这样就减小了js文件中的全局变量与其余全局变量名称相同的风险。函数
自执行函数的几种表现方式:spa
方式1:function外面加括号 (推荐,比较常见):.net
上面建立了一个匿名函数(在第一个括号内),第二个括号用于调用该匿名函数,并传入参数。两个括号都是表达式,是表达式就有返回值,因此能够在后面加一对括号让它们执行.当js的解析器执行到前一个括号后就返回一个函数对象而后连着后面一个括号就构成了一个完整的函数名+(参数)+;的函数执行语句。code
方式2:最前最后加括号 (这是jslint推荐的写法,好处是,能提醒阅读代码的人,这段代码是一个总体)htm
方式3:function前面加运算符,常见的是!与void 。这样作的目的就是将函数转换成表达式。对象
上面介绍了自执行函数,因此咱们能够用它来减小全局变量的使用,提升安全性。因此在js文件中,咱们经常用自执行函数来包裹住咱们的自定义函数。格式以下:blog
那么自定义函数如何来定义呢,请看下面的方法
方法一:经过在jQuery全局变量中增长函数
方法二:经过在jQuery全局变量中扩展程序
注意:经过.fn定义的扩展方法,须要经过jQuery选择器调用,好比经过标签选择器$("button").myMethod(args)。
方法三:建立全局变量,在全局变量里面自定义函数