首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >变量作用域的javascript术语

变量作用域的javascript术语
EN

Stack Overflow用户
提问于 2012-04-29 03:36:41
回答 1查看 135关注 0票数 0

我忘记了javascript中用来描述特定现象的术语。它与在内联函数中访问变量的方式有关。我也不太理解这个理论。我依稀记得下面的代码

代码语言:javascript
复制
for(var c = 0; c< 10; c++)
{
  arrayOfObjects[c].onclick = function() {alert(c); };
}

我记得当点击一个对象时,警告窗口总是打印10,然后有人解释说这是因为javascript中的所有东西都是对象。即使function(){blah}也是一个在运行时计算的对象,这就是为什么我对变量作用域感到困惑的原因。

我认为描述这一现象的术语是从字母e开始的,它类似于封装,或封装,或诱捕,或类似的东西。

我要找的术语是什么?

EN

回答 1

Stack Overflow用户

发布于 2012-04-29 18:53:12

在示例代码中,一个有效的闭包可能如下所示:

代码语言:javascript
复制
for(var c = 0; c< 10; c++) {

    arrayOfObjects[c].onclick = function(cc) {

        // cc is sustained in here

        return function () {

            alert(cc);

        }

    }(c);

}

由于末尾的(),outter函数会立即执行,并将'c‘作为'cc’传递给它。然后内部函数被“构造”,并为onclick返回。当这个存储的内部函数稍后执行时,它仍将具有对“cc”的引用,就像它在构造时一样。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10366877

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档