js自调用匿名函数与内部实例化封装插件
来源:互联网 发布:ubuntu输入法无法使用 编辑:程序博客网 时间:2024/05/08 11:36
自调用匿名函数实现方式
- 方法一(注意:前面的
;
不要省略,可以防止前面的语句缺少;
结尾)
;(function (win, $) { //handle})(window, jQuery);
- 方法二
!function (win, $) { //handle}(window, jQuery);
- 方法三
(function (win, $) { //handle}(window, jQuery));
下面是一个简单插件案例
请自行引入jquery类库,点击li能够在控制台console里面打印相应内容(通过以上三种方式任意一种都可以实现)
<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>Title</title></head><body><h4>匿名自调用函数封装插件</h4><p>please click F12, see console result.请按F12查看控制台console内容</p><ul id="list"> <li class="item">clik me show in console is apple</li> <li class="item">clik me show in console is banana</li> <li class="item">clik me show in console is orange</li> <li class="item">clik me show in console is grape</li></ul><script src="http://code.jquery.com/jquery-1.12.4.js" integrity="sha256-Qw82+bXyGq6MydymqBxNPYTaUXXq7c8v3CwiYwLLNXU=" crossorigin="anonymous"></script><script> ;(function (win, $) { var plugin = function (item) { this.item = $(item); this.clickEvent(); }; plugin.prototype.clickEvent = function () { this.item.click(function(){ console.log($(this).text()); }); }; plugin.init = function (itemLists) { var _this = this; itemLists.each(function (key, item) { new _this(item); }); }; win.MyTapPlugin = plugin; })(window, jQuery);</script><script> MyTapPlugin.init($('#list .item'));</script></body></html>
封装插件注意事项
内部实例化一定要弄明白传入的是对象还是数组。如果是对象,直接用
new this(selector)
实例化;如果是数组,则用for (){}
或者each()
循环的方式实例化。另外不得不提的是each循环的this指向问题,可以参考上面的案例来实现jquery传入的对象,实例化后出来的item是dom节点,需要用
$(item)
来恢复jquery成对象
欢迎点赞,谢谢关注!!! :)
阅读全文
0 0
- js自调用匿名函数与内部实例化封装插件
- JS--自调用匿名函数
- js匿名函数自调用
- js 匿名函数自调用
- JS函数 -- 功能,语法,返回值,匿名函数,自调用匿名函数,全局变量与局部变量,arguments的使用
- 自调用匿名函数
- 自调用匿名函数
- 自调用匿名函数
- JS自调用匿名函数 self-invoking anonymous function
- JavaScript自调用匿名函数
- 匿名函数自调用(IIFE)
- javascript 自调用匿名函数
- 匿名函数自调用(IIFE)
- JavaScript 自调用匿名函数
- JS匿名自执行函数
- JS匿名自执行函数
- JS匿名自执行函数
- JS自执行匿名函数
- 每个架构师都应该研究下康威定律
- golang实现冒泡排序
- 教练技术培训系列篇二——明辨
- rust 迭代器 (iterator) 详解
- 递归法寻找链表后面第i个元素
- js自调用匿名函数与内部实例化封装插件
- 光流法目标跟踪原理(不带公式)
- ES7与ES8特性
- 成为一个软件测试工程师,你需要知道
- 操作系统第九章作业paging-multileveltranslate
- js中对象的复制,浅复制(浅拷贝)和深复制(深拷贝)
- 《JAVA编程技巧1001条》第335条:数学函数 SQRT.
- 当配置systemctl restart nfs-server.service时,不能正确重启服务该怎么办?
- 为什么要用工厂方法模式