JavaScript自执行函数和jQuery扩展方法
自执行函数是用一对圆括号将匿名函数包起来,加括号(传参)会立即执行。因为函数无名字,实现了作用域的绝对隔离和函数名的冲突问题。基本形式如下:
(function () { console.log('do something'); })();
比如我们在custome.js文件中写了一些JS逻辑,并封装到函数init中。我们用自执行函数将自己定义的函数init包起来,就像下面这样。
(function () { function init() { console.log('execute init...'); } init(); })();
当我们在html中引入custome.js:<script src="custome.js"></script>,自执行函数会立即执行,进而执行内部定义的init函数:
不过,自执行函数立即执行的特性,使其很难调用。通过定义jQuery扩展方法,可以解决这一问题,拿到自执行函数调用和执行的主动权。
首先我们看一下定义jQuery扩展方法的基本形式:
jQuery.extend({ 'myMethod': function () { console.log('do something'); } });
这样,通过$.myMethod()或jQuery.myMethod()就可以调用上面定义的方法。
定义jQuery扩展方法还有另外一种方式:.fn
jQuery.fn.extend({ 'myMethod': function () { console.log('do something');; } });
通过如上方式定义的扩展方法,需要通过jQuery选择器调用,比如通过标签选择器$("button").myMethod(args)
了解了JS自执行函数和jQuery扩展方法后,我们将二者结合起来。
下面我们利用自执行函数立即执行的特点,来定义jQuery扩展方法:
(function (jq) { function init() { console.log('do something'); } jq.extend({ 'myMethod': function () { init(); } }) })(jQuery);
说明,这个自执行函数接收jQuery对象作为参数,然后在内部为jQuery定义一个扩展方法myMethod,该方法执行真正的逻辑代码init函数
调用:
<script src="jquery-3.2.1.js"></script> <script src="custome.js"></script> <script> $(function () { $.myMethod(); }); </script>
说明:
jQuery文件引入后,jQuery对象全局可用;
紧接着引入自定义JS文件custome.js,其中的自执行函数接收jQuery对象为参数,立即执行,在内部为jQuery定义一个扩展方法myMethod
然后我们就可以在页面加载完成后,通过调用$.meMethod()或jQuery.myMethod()来执行init函数
相关推荐:
javascript自执行函数之伪命名空间封装法_javascript技巧
javascript中运用闭包和自执行函数解决大量的全局变量问题_javascript技巧
以上就是JavaScript自执行函数和jQuery扩展方法的详细内容,更多请关注其它相关文章!
推荐阅读
-
【jQuery】关于 jQuery 和 JavaScript 两个入口函数的执行顺序问题
-
JavaScript自执行函数和jQuery扩展方法详解
-
JS自执行函数与jQuery扩展使用方法
-
javasciprt下jquery函数$.post执行无响应的解决方法_javascript技巧
-
JS自执行函数与jQuery扩展使用方法
-
JavaScript自执行函数和jQuery扩展方法
-
javascript中运用闭包和自执行函数解决大量的全局变量问题_javascript技巧
-
详解JavaScript自执行函数和jQuery扩展方法
-
JavaScript自执行函数和jQuery扩展方法详解
-
javascript中运用闭包和自执行函数解决大量的全局变量问题_javascript技巧