24 jQuery——对象的封装、闭包、匿名自调用函数
2021-04-21 16:29
阅读:646
YPE html>
标签:head har click ret oct return 代码块 charset 理解
对象的封装
有使用我们引入的js文件中的对象非常非常多,js一旦变量名重复就会覆盖。为了解决这一问题,我们使用对象封装。
我们引入的js工具(代码)不会覆盖我们自己写的对象。这是因为它使用了封装与闭包。
就好像java中引入的工具,虽然方法名和我们自己写的方法名重复,但并不会覆盖,因为我们在使用引入的方法时,通常在前面类名点方法名的形式。
js也一样。js使用闭包封装好工具,只返回一个函数名,我们使用函数名.对象的方式调用提供的方法即可。
闭包
简单的理解为:函数里面有函数,返回函数中的函数对象。
如:
好了其它代码:
jQUery的封装原理
- 1.js的全局代码区只有一个:无论是引入的还是html中写的多个js代码块,都会合成一个js文件到内存中
- 所以同名变量(函数等)会覆盖。
- 2.使用对象封装,将代码封装到对象中(查看my.js文件中对象:xiaohei),但对象也可以被覆盖,内容全部失效。为了解决这个问题,查看3
- 3.使用工厂模式,将需要用的东西写到一个函数中(查看my.js文件。但问题并没有完全解决)
- 4.将封装的函数名去除,引出新问题: 函数没有办法调用,解决方法看5
- 5.使用匿名自调用,可以再页面加载的时候调用一次,但不能重复调用,解决方法看6
- 6.使用闭包
my.js
//声明对象 var xiaohei={} xiaohei.test = function(){ alert("我是外部js文件的test函数") } //使用工厂模式 function getXiaohei(){ var xiaohei={} xiaohei.test = function(){ alert("工厂模式的test函数") } return xiaohei; } // 匿名自调用:只能存在一个匿名自调用 (function(){ alert("匿名自调用") return "你好"; })() //使用闭包 // (function(obj){ // obj.test = function(){ // alert("我是闭包创建的test"); // } // } // )(window) //传window对象,当这个匿名函数执行时,window获得一个test对象
24 jQuery——对象的封装、闭包、匿名自调用函数
标签:head har click ret oct return 代码块 charset 理解
原文地址:https://www.cnblogs.com/Scorpicat/p/12248231.html
文章来自:搜素材网的编程语言模块,转载请注明文章出处。
文章标题:24 jQuery——对象的封装、闭包、匿名自调用函数
文章链接:http://soscw.com/index.php/essay/77691.html
文章标题:24 jQuery——对象的封装、闭包、匿名自调用函数
文章链接:http://soscw.com/index.php/essay/77691.html
评论
亲,登录后才可以留言!