宝哥软件园

详细讨论JavaScript的关闭和应用

编辑:宝哥软件园 来源:互联网 时间:2021-09-06

封闭真的是一遍又一遍学来的。Js博大精深,每次学都有新收获。我相信,当您打包前端插件时,闭包是必要的。闭包真正的好处是,我个人认为除了封装或者封装之外,我们还可以自带私有方法,调用起来也很灵活方便,对于外部对象来说也会让你的代码保持干净整洁。

进入正题

维基百科对JS闭包的定义如下:在计算机科学中,闭包,也称为词法闭包或函数闭包,是指自由变量的函数。这个被引用的自由变量将与这个函数一起存在,即使它已经离开了创建它的环境。因此,还有一种说法,闭包是由函数及其相关引用环境组成的实体。闭包在运行时可以有多个实例,不同的引用环境和相同的函数组合可以产生不同的实例。

一般来说,闭包不同于一般函数,因为它们允许函数访问该方法被立即调用的范围之外的非局部变量。我还想说,闭包的语法使您的代码更加动态,下面的代码可能会让您有所感受。

script(function(){ var user token='这是我的令牌';var someConfig='正在打开某些函数';var privateValue=' privatevar publicValue=' publicvar appObj={ };函数myprivatefnc(){ alert(private value)} appobj . getusertoken=function(){//某些逻辑UserToken='在某些内部逻辑之后';返回userToken} appobj . public VaL=public VaLue;window.application=appObj}());//立即执行console . log(application . getuser token());//这是我在一些内部逻辑console . log(application . public val)之后的令牌;//公共console . log(application . private value);//未定义的应用程序. myprivatefnc();//错误/脚本我将appObj附加到窗口。我通常喜欢定义一个名为application的全局对象,它代表整个应用程序共有的顶级对象。可以对外公开很多公共的操作方法,也可以在里面做一些私有的处理,防止外部调用带来的一些问题。在已定义的“顶层”应用对象下,还可以在其中定义必要的全局变量,以防止普通全局变量对应用的影响,并通过您定义的闭包中暴露的对象表达更清晰的信息。我一直觉得随便定义一个JS全局变量太丢人了。

有了闭包的编写和VS强大的智能提示,你会觉得无比畅快。我在下面附上了另一个方法

(function(){ var baseURl=' www . cn blogs.com/tdws/';application . getbaseURl=function(){ return baseURl;} }());console . log(application . GetBaseURl());//www . cn blogs.com/tdws/

写在最后

你不认为保持变量并暴露一系列get方法是非常动态的吗 (-) 摊开你的手.

当然,闭包也需要你正确使用,不要造成循环引用,因为会造成内存泄漏。不要做不必要的闭包,这样会浪费你的空间,因为闭包不会被释放。不要到处关闭,因为这会增加代码的复杂性。

以上就是本文的全部内容。希望本文的内容能给大家的学习或工作带来一些帮助,也希望多多支持我们!

更多资讯
游戏推荐
更多+