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

javascript中的window.ActiveXObject和闭包是什么意思有什么作用,在...

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

我来回答

2个回答

热心网友 时间:2022-05-15 03:43

判断浏览器是否支持ActiveX控件

闭包的两个特点:

1、作为一个函数变量的一个引用 - 当函数返回时,其处于激活状态。

2、一个闭包就是当一个函数返回时,一个没有释放资源的栈区。

例1。

<scripttype="text/javascript">

functionsayHello2(name){

vartext='Hello'+name;//localvariable

varsayAlert=function(){alert(text);}

returnsayAlert;

}

varsy=sayHello2('never-online');

sy();

</script>

作为一个Javascript程序员,应该明白上面的代码就是一个函数的引用。如果你还不明白或者不清楚的话,请先了解一些基本的知识,我这里不再叙述。

上面的代码为什么是一个闭包?

因为sayHello2函数里有一个内嵌匿名函数

sayAlert = function(){ alert(text); }

在Javascript里。如果你创建了一个内嵌函数(如上例),也就是创建了一个闭包。

在C或者其它的主流语言中,当一个函数返回后,所有的局部变量将不可访问,因为它们所在的栈已经被消毁。但在Javascript里,如果你声明了一个内嵌函数,局部变量将在函数返回后依然可访问。比如上例中的变量sy,就是引用内嵌函数中的匿名函数function(){ alert(text); },可以把上例改成这样:

<scripttype="text/javascript">

functionsayHello2(name){

vartext='Hello'+name;//localvariable

varsayAlert=function(){alert(text);}

returnsayAlert;

}

varsy=sayHello2('never-online');

alert(sy.toString());

</script>

这里也就与闭包的第二个特点相吻合。

例2。

<scripttype="text/javascript">

functionsay667(){

//Localvariablethatendsupwithinclosure

varnum=666;

varsayAlert=function(){alert(num);}

num++;

returnsayAlert;

}

varsy=say667();

sy();

alert(sy.toString());

</script>

上面的代码中,匿名变量function() { alert(num); }中的num,并不是被拷贝,而是继续引用外函数定义的局部变量——num中的值,直到外函数say667()返回。

例3。

<scripttype="text/javascript">

functionsetupSomeGlobals(){

//Localvariablethatendsupwithinclosure

varnum=666;

//Storesomereferencestofunctionsasglobalvariables

gAlertNumber=function(){alert(num);}

gIncreaseNumber=function(){num++;}

gSetNumber=function(x){num=x;}

}

</script>

<buttononclick="setupSomeGlobals()">生成-setupSomeGlobals()</button>

<buttononclick="gAlertNumber()">输出值-gAlertNumber()</button>

<buttononclick="gIncreaseNumber()">增加-gIncreaseNumber()</button>

<buttononclick="gSetNumber(5)">赋值5-gSetNumber(5)</button>

上例中,gAlertNumber, gIncreaseNumber, gSetNumber都是同一个闭包的引用,setupSomeGlobals(),因为他们声明都是通过同一个全局调用——setupSomeGlobals()。

你可以通过“生成”,“增加”,“赋值”,“输出值”这三个按扭来查看输出结果。如果你点击“生成”按钮,将创建一个新闭包。也就会重写gAlertNumber(), gIncreaseNumber(), gSetNumber(5)这三个函数。

热心网友 时间:2022-05-15 05:01

window.ActiveXObject判断浏览器是否支持ActiveX控件。
ActiveX 控件是一种可重用的软件组件,通过使用
ActiveX控件,可以很快地在网址、台式应用程序、以及开发工具中加入特殊的功能。如,StockTicker控件可以用来在网页上即时地加入活动信息,动画控件可用来向网页中加入动画特性。现在,已有1000多个商用的ActiveX控件,开发控件可以使用各种编程语言,如C,C++,下一代的 Microsoft Visual Basic®,以及微软公司的 Visual Java开发环境Microsoft Visual J++™。 ActiveX控件一旦被开发出来,设计 和开发人员就可以把它当作预装配组件,用于开发客户程序。以此种方式使用 ActiveX控件,使用者无需知道这些组件是如何开发的,在很多情况下,甚至不需要自己编程,就可以完成网页或应用程序的设计。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
养胃的药最好的是什么啊 婴儿积食发烧不愿吃药怎么办 板门穴位在哪个部位 手机设置放偷看的方法? 凝结水回收器生产厂家? 个人账户养老金预测公式:现有5万元,缴费20年,能领多少钱? 临沂比较有名的男装品牌 呼伦贝尔市悦动网络科技有限公司怎么样? 呼伦贝尔中汇实业有限公司怎么样? 呼伦贝尔油玉不绝电子商务有限公司怎么样? 那录音笔什么功能最有用,买的时候需要注意哪些?怎么挑选 js中闭包是什么意思,有什么作用,最好举例说明啊。 录音笔可以作为法律证据吗 JAVASCRIPT中的匿名函数指的是没有名字的函数吗,有何作用啊,在代码文本... 买个录音笔有用吗? 录音笔好用吗? js闭包和PHP闭包的区别 录音的效果好吗,现在还有必要专门买录音笔么 JavaScript 闭包 智能录音笔的录音效果好吗? Javascript中的闭包是什么意思?? 录音笔究竟好不好用呢? javascript另类闭包问题 请问,录音笔有什么用? JavaScript中的闭包是用来做什么的? Js编程语言中,什么叫匿名自我调用函数? WEB前端学习五 什么是闭包 javascript 函数中的匿名函数一定是闭包吗? 如何做好计划生育宣教工作 javascript 为什么要使用匿名函数 或者说 匿名闭包 老罗说的AI录音笔大家有用过吗?录音笔的拾音效果怎么样? 搜狗录音笔录音效果好不好? 讯飞录音笔怎样,有用过的吗? 讯飞智能录音笔录音清晰准确吗?有用过的吗? 智能录音笔学生有用的吗? 高清录音笔真的有用吗 什么牌子的录音笔录音质量最好?怎样知道录音笔效果好,有哪些指标? 微信中的照片怎样插入到美篇制作? 西葫芦是丝瓜吗 怎么把一篇很长的文章制作成吸引人看的美篇 线瓜是什么瓜? 丝瓜炒西葫芦怎么做好吃 东北民间俗称角瓜的疏菜学名叫什么? 形状像西葫芦短粗是什么瓜? 黄瓜丝瓜苦瓜冬瓜哪个最耐高温又耐涝? 西葫芦按植物学怎样分类? 急!这是丝瓜还是西葫芦!糊塌子需要放水么? 为什么说是葫芦科是瓜类大家庭? 丝瓜和西葫芦能一起炒吗 钾含量低的蔬菜和水果有哪些?