问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

javascript 为什么要使用匿名函数 或者说 匿名闭包

发布网友 发布时间:2022-04-24 06:35

我来回答

4个回答

热心网友 时间:2022-05-12 07:01

1、相当划出一块私有作用域,避免数据污染。
2、执行完就销毁,避免内存长驻。
var Calculator = function (eq) {
var eqCtl = document.getElementById(eq);
return {
add: function (x, y) { }
};
};
这个函数 跟 (function () {

}());的区别在于返回的add 引用的函数指向内部的定义的那个function(x,y),而它的作用域包含外部那个 function(eq),由于add是全局的,故垃圾回收知道存在引用,故这些函数就会一直存在不会销毁,直到window的环境不存在即浏览器关闭才能释放内存.而匿名的那个执行一次,而本身又没存在外部引用,垃圾回收就会执行~!这就是2者最大区别。
匿名函数最大的用途是来模拟块级作用域,避免数据污染的。

热心网友 时间:2022-05-12 08:19

1,相当划出一块私有作用域,避免数据污染.
2执行完就销毁,避免内存长驻.
var Calculator = function (eq) {
var eqCtl = document.getElementById(eq);
return {
add: function (x, y) { }
};
};
这个函数 跟 (function () {

}());的区别在于返回的add 引用的函数指向内部的定义的那个function(x,y),而它的作用域包含外部那个 function(eq),由于add是全局的,故垃圾回收知道存在引用,故这些函数就会一直存在不会销毁,直到window的环境不存在即浏览器关闭才能释放内存.而匿名的那个执行一次,而本身又没存在外部引用,垃圾回收就会执行~!这就是2者最大区别.
匿名函数最大的用途是来模拟块级作用域,避免数据污染的,追问add 为什么是全局的?

追答抱歉把这里看成返回函数了,这里add只是属性依附所存在对象
,非全局的~!不过在js中只有2个变量类型,全局变量和局部变量.
js规定:所有没用var申明的变量,一律会自动申明为全局变量,所以最好还是明确申明变量.
但有一种情况即使申明了,但还是全局那就是在window中申明,因为那是顶级对象,js中一切都是在window对象下实现的~!

热心网友 时间:2022-05-12 09:53

一般情况下我们定义一个var a=4是window环境下的 就相当于全局变量,如果我们定义在匿名函数中的话就把这个全局环境跟window环境隔开了,避免混淆,而且该匿名函数执行完后就直接销毁了这个匿名函数中定义的变量,释放内存了,但是window的不一样的哇 你关了网页才释放。

热心网友 时间:2022-05-12 11:45

匿名函数执行一次就被销毁了,所以不会在内存中驻留,防止了内存泄露。其次,函数销毁后,防止了其他人调用。追问可是在js 设计模式中 很多时候并不是这样直接自执行 然后销毁的
var Calculator = function (eq) {
var eqCtl = document.getElementById(eq);
return {
add: function (x, y) { }
};
};

比如这样 公开add 私有eqCtl
这样算销毁了吗?

追答这种跟上面那种还是有区别的。因为可以通过变量Calculator 继续调用函数。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
巴西龟最长活多久,家养!!! 养胃的药最好的是什么啊 婴儿积食发烧不愿吃药怎么办 板门穴位在哪个部位 手机设置放偷看的方法? 凝结水回收器生产厂家? 个人账户养老金预测公式:现有5万元,缴费20年,能领多少钱? 临沂比较有名的男装品牌 呼伦贝尔市悦动网络科技有限公司怎么样? 呼伦贝尔中汇实业有限公司怎么样? 计划生育协会关于争创“五好小级”“五有小组”的几件好事实事 如何做好计划生育生育服务登记工作总结 大家好,调查社会问题作文 1000字,谢谢 适宜张贴在教室得春联 贴春联的活动过程是什么? 新春佳节,家家户户张贴春联有什么作用? 贴对联的由来和寓意是什么? 贴春联的讲究有哪些? 庆祝九九重阳节贺词 九九重阳节祝福短语 九九重阳节祝福语有哪些? 自己榨的豆浆为什么没有外面卖的现磨豆浆好喝?他们都加了什么? 揭秘小吃摊的“现磨”豆浆到底能不能喝 豆浆中的大豆蛋白,对身体的好处都有哪些? 早餐摊豆浆,水了吧唧的那种在哪买,有豆浆粉能冲出来吗? 长期喝豆浆 有好处吗 女人每天喝一杯冲剂的豆浆对身体好么 女性冬季养生喝豆浆的好处有哪些 多喝豆浆对老人有什么好处,永和豆浆可以吗? 有谁天天喝豆浆的?有什么效果? 如何做好计划生育宣教工作 javascript 函数中的匿名函数一定是闭包吗? WEB前端学习五 什么是闭包 Js编程语言中,什么叫匿名自我调用函数? JavaScript中的闭包是用来做什么的? 请问,录音笔有什么用? javascript另类闭包问题 录音笔究竟好不好用呢? Javascript中的闭包是什么意思?? 智能录音笔的录音效果好吗? JavaScript 闭包 录音的效果好吗,现在还有必要专门买录音笔么 js闭包和PHP闭包的区别 录音笔好用吗? 买个录音笔有用吗? JAVASCRIPT中的匿名函数指的是没有名字的函数吗,有何作用啊,在代码文本... 录音笔可以作为法律证据吗 js中闭包是什么意思,有什么作用,最好举例说明啊。 那录音笔什么功能最有用,买的时候需要注意哪些?怎么挑选 javascript中的window.ActiveXObject和闭包是什么意思有什么作用,在...