Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/467.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript-我如何了解;“关闭”;用法?_Javascript_Closures - Fatal编程技术网

JavaScript-我如何了解;“关闭”;用法?

JavaScript-我如何了解;“关闭”;用法?,javascript,closures,Javascript,Closures,来自免费百科全书维基百科:Closure(计算机科学) 在计算机科学中,闭包是一种 在函数中计算的函数 包含一个或多个 绑定变量。呼叫时 函数可以访问这些变量。 闭包的显式用法是 与函数式编程相关 并使用诸如ML和 口齿不清。中的对象等构造 其他语言也可以建模 用闭包 要在JavaScript内部使用此功能,有人能给我举一个如何应用此功能的示例吗?搜索“JavaScript闭包”会得到很多令人鼓舞的链接。前三个是这两个(第三个链接是第二个链接的重新格式化版本): 如果这些对你没有帮助,请

来自免费百科全书维基百科:Closure(计算机科学)

在计算机科学中,闭包是一种 在函数中计算的函数 包含一个或多个 绑定变量。呼叫时 函数可以访问这些变量。 闭包的显式用法是 与函数式编程相关 并使用诸如ML和 口齿不清。中的对象等构造 其他语言也可以建模 用闭包

要在JavaScript内部使用此功能,有人能给我举一个如何应用此功能的示例吗?

搜索“JavaScript闭包”会得到很多令人鼓舞的链接。前三个是这两个(第三个链接是第二个链接的重新格式化版本):

如果这些对你没有帮助,请解释为什么我们能够更好地提供帮助。如果您在提问之前没有搜索,那么-请下次搜索:)

(使用jQuery中的示例)


当在每个函数的作用域内使用变量className时,闭包起作用。当SetClassOnHover退出时,两个函数都必须在className上保留句柄,以便在调用函数时访问其值。这就是闭包所能实现的。

闭包的一个实际例子是当它们被用来创建“私有”变量时,比如

function incrementer(){
    var i=0;
    this.increment=function(){
        i++;
    }
    this.get=function(){
        return i;
    }
}

访问i的唯一方法是使用get方法,更改i的唯一方法是使用increment方法。在类中,您可以这样做来模拟私有变量。

@sunglim:如果您说哪个链接无效,这会有所帮助。无论如何,修正。链接1和3是同一篇文章。任何人都可以谷歌“鼓励”链接,但用户正在从操作系统社区寻找方向。如果你自己没有使用过这些资源,就不要推荐它们。@Yarin:OP特别要求提供“如何应用这些资源的示例”。链接页面提供了大量示例。虽然任何人都可以搜索链接,但在我看来,很多人都不能。我想你的意思是2和3是同一篇文章——尽管重新格式化了。我将删除第三个链接。这是我见过的最简洁有用的闭包示例。很好。这个答案,依我看,糟透了。这是闭包所能做的10%。为什么不用它来显示私有变量呢?至少不用jquery来回答…@没有什么能阻止你回答。你停止大言不惭,开始表演怎么样。。。有点晚了,但还好。我刚刚用JavaScript写了一篇关于闭包的文章,你可能会发现它是helfpul。
function incrementer(){
    var i=0;
    this.increment=function(){
        i++;
    }
    this.get=function(){
        return i;
    }
}