【发布时间】:2012-11-13 01:13:24
【问题描述】:
我的目标是在编写干净代码的同时使用闭包。我注意到的一件事是,不知何故,我总是以某种方式重复自己,因为在不止一种情况下需要我的一个匿名函数。
为了这个目标,我想将这些重复的函数存储在一个对象中,以便以后重复使用。
现在,我的问题。我已经创建了这个示例 http://jsfiddle.net/tiagoespinha/tTx64/ 并且不会触发警报,因为 y 为空。
但是,如果我内联函数,一切正常http://jsfiddle.net/tiagoespinha/tTx64/1/
有什么技巧可以解决这个问题吗?我怎样才能让它在第一个例子中工作?变量y还在,为什么JS抓不到?
【问题讨论】:
-
这正是闭包的工作原理。如果您定义一个函数,它可以访问它定义的范围。在这种情况下,您希望访问来自不同范围的变量。在函数式编程中,最简单的解决方案是让函数通过参数访问这个变量。
标签: javascript closures