JS自执行函数与jQuery扩展使用方法

这次给大家带来JS自执行函数与jQuery扩展使用方法,JS自执行函数与jQuery扩展的注意事项有哪些,下面就是实战案例,一起来看一下。

我们通常将JS代码写在一个单独的JS文件中,然后在页面中引入该文件。但是,有时候引入后会碰到变量名或函数名与其它JS代码冲突的问题。那么如何解决这个问题呢?作用域隔离。在JS中,作用域是通过函数来划分的,将JS代码封装到函数中进行调用可以避免变量名/函数名冲突的问题,但是这也并不是万无一失,因为封装函数本身有可能和其它函数重名,解决方案:自执行函数。

自执行函数是用一对圆括号将匿名函数包起来,加括号(传参)会立即执行。因为函数无名字,实现了作用域的绝对隔离和函数名的冲突问题。基本形式如下:

(function () {  console.log('do something');})();

登录后复制

比如我们在custome.js文件中写了一些JS逻辑,并封装到函数init中。我们用自执行函数将自己定义的函数init包起来,就像下面这样。

(function () {  function init() {    console.log('execute init...');  }  init();})();

登录后复制

当我们在html中引入custome.js:,自执行函数会立即执行,进而执行内部定义的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函数

调用:

 $(function () {  $.myMethod(); });

登录后复制

说明:

jQuery文件引入后,jQuery对象全局可用;
紧接着引入自定义JS文件custome.js,其中的自执行函数接收jQuery对象为参数,立即执行,在内部为jQuery定义一个扩展方法myMethod
然后我们就可以在页面加载完成后,通过调用$.meMethod()或jQuery.myMethod()来执行init函数          

相信看了本文案例你已经掌握了方法,更多精彩请关注【创想鸟】其它相关文章!

推荐阅读:

在vue2中使用ref步奏详解

vue-resource拦截器设置头信息的步奏详解

实现ajax发送异步请求方法

以上就是JS自执行函数与jQuery扩展使用方法的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2771817.html

(0)
上一篇 2025年3月8日 13:04:56
下一篇 2025年3月8日 13:05:06

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • JS模拟实现封装的方法

    这次给大家带来JS模拟实现封装的方法,JS模拟实现封装的注意事项有哪些,下面就是实战案例,一起来看一下。 前  言    继承是使用一个子类继承另一个父类,那么子类可以自动拥有父类中的所有属性和方法,这个过程叫做继承!  JS中有很多实现继…

    编程技术 2025年3月8日
    200
  • JS怎样检测浏览器内的脚本

    这次给大家带来JS怎样检测浏览器内的脚本,JS检测浏览器内脚本的注意事项有哪些,下面就是实战案例,一起来看一下。 以下是完整的用户代理字符串检测脚本,包括检测呈现引擎、平台、Windows操作系统、移动设备和游戏系统。 var client…

    编程技术 2025年3月8日
    200
  • JS中typeof和类型判断(附代码)

    这次给大家带来JS中typeof和类型判断(附代码),JS中typeof和类型判断的注意事项有哪些,下面就是实战案例,一起来看一下。 typeof ECMAScript 有 5 种原始类型(primitive type),即 Undefin…

    编程技术 2025年3月8日
    200
  • JS的正则表达式应用

    这次给大家带来JS的正则表达式应用,JS正则表达式应用的注意事项有哪些,下面就是实战案例,一起来看一下。 今天和大家分享一些关于正则表达式的知识和在javascript中的应用。正则表达式简单却又不简单,比如以前我的老师给我们讲的时候就说这…

    编程技术 2025年3月8日
    200
  • AngularJs用户登录时交互及验证步奏详解

    这次给大家带来AngularJs用户登录时交互及验证步奏详解,AngularJs用户登录时交互及验证的注意事项有哪些,下面就是实战案例,一起来看一下。 1. 静态页面搭建及ng的form表单验证实现: 登录 登录后复制 2. 定义用户登录的…

    编程技术 2025年3月8日
    200
  • JS+H5+C3实现弹出窗口

    这次给大家带来JS+H5+C3实现弹出窗口,JS+H5+C3实现弹出窗口的注意事项有哪些,下面就是实战案例,一起来看一下。 源码: 1.demo.jsp 自定义弹出窗口 button{ width: 50px; height: 50px; …

    编程技术 2025年3月8日
    200
  • JS二叉树的先序中序及后序遍历实现方法

    这次给大家带来JS二叉树的先序中序及后序遍历实现方法,JS二叉树先序中序及后序遍历实现方法的注意事项有哪些,下面就是实战案例,一起来看一下。 之前学数据结构的时候,学了二叉树的先序、中序、后序遍历的方法,并用C语言实现了,下文是用js实现二…

    编程技术 2025年3月8日
    200
  • node.js和ES6的exports、module.exports使用详解

    这次给大家带来node.js和ES6的exports、module.exports使用详解,node.js和ES6exports、module.exports使用的注意事项有哪些,下面就是实战案例,一起来看一下。 阿西吧,头都大了&#823…

    编程技术 2025年3月8日
    200
  • AngularJS做出输入框字数限制提醒

    这次给大家带来AngularJS做出输入框字数限制提醒,AngularJS做出输入框字数限制提醒的注意事项有哪些,下面就是实战案例,一起来看一下。 www.jb51.net AngularJS字数提示 *{ margin:0; paddin…

    编程技术 2025年3月8日
    200
  • JS里tofixed与round使用详解

    这次给大家带来JS里tofixed与round使用详解,JS里tofixed与round使用的注意事项有哪些,下面就是实战案例,一起来看一下。 1 、tofixed方法 toFixed() 方法可把 Number 四舍五入为指定小数位数的数…

    编程技术 2025年3月8日
    200

发表回复

登录后才能评论