【问题标题】:Does Mootools prevents javascript closure 100%?Mootools 是否 100% 防止 javascript 关闭?
【发布时间】:2011-02-11 18:27:31
【问题描述】:

当我和朋友谈论 javascript 闭包时,有人告诉我使用 Mootools 可以 100% 防止闭包。据我所知,变量会导致闭包。 Mootools 本身如何防止 javascript 关闭?我想我的朋友说 Mootools 的函数是闭包安全函数。

有什么建议吗?

【问题讨论】:

  • 你请你的朋友解释一下自己吗?也许你在谈论不同的事情?
  • @Fyodor Soikin // 我认为他有一个想法,即 javascript == mootools,因为他使用 Mootools 开始了 javascript。这就是为什么他说使用 Mootools 本身可以防止 100% javascript 闭包,因为 Mootools 本身确实不做闭包。
  • @terrani - 它不会阻止它们...它们是非常有用的东西,事实上大多数框架都有特定的上下文闭包创建方法,甚至 Mootools:mootools.net/docs/core/Native/Function#Function:pass
  • mootools 确实在其代码库中大量使用了闭包。此外,为 mootools 编码更经常使您使用闭包,无论是编写一个将所有函数作为方法的类,还是将所有代码粘贴在 domready 匿名函数中。它当然不能阻止它们......我suggest你首先阅读了闭包......
  • 不过,问题出在哪里?我的观点是,如果你读过关于闭包的文章,你就可以告诉你的朋友,没有任何框架可以阻止它们。不过,您可以 PUNCTURE 闭包,请在此处阅读:appden.com/javascript/puncture-closures

标签: mootools closures


【解决方案1】:

变量不会导致闭包。闭包由函数 A 创建,该函数返回另一个函数 B,该函数引用 A 的一个局部变量。例如,表达式

(功能() { 变量 x; 返回 { 获取:函数(){返回x; }, 设置:函数(y){返回x=y; } }; })();

返回一个对象,其中包含两个引用局部变量x 的函数。我们说getset“关闭”x

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-24
    • 1970-01-01
    • 2015-05-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多