当前位置: 首页 > 面试题库 >

是否可以访问函数的关闭?

曹恩
2023-03-14
问题内容

javascript中的函数通过保持与其隐藏范围的(隐藏)链接来形成关闭。

当我们拥有函数(作为变量值)时,是否可以通过编程方式访问它?

真正的目标是理论上的,但一个演示可能是列出闭合的属性。

var x = (function(){
   var y = 5;
   return function() {
       alert(y);
   };
})();

//access y here with x somehow

问题答案:

这是关闭的目的之一(使信息保密)。由于该函数已经执行,因此它的作用域变量不再可从外部获得(并且从未使用过)-只有在其作用域中执行的函数(仍然)可以访问。

但是,您可以通过getter / setter授予访问权限。

编辑:您可以使用几种方法来检查闭包:在webdeveloper控制台中观察对象,或者(就像我经常做的那样)返回调试函数,该函数将所有私有变量转储到控制台。



 类似资料:
  • 问题内容: 我试图编写一个Int扩展名以将Int限制在特定范围内,如下所示: 我遇到了编译器错误,过了一会儿我才意识到这在这里被解释为,这是最低的常量。 我可以重新实现,以避免/,但是我很好奇:有没有办法可以从扩展中引用那些? 问题答案: 您可以在前面加上模块名称: 只是为了好玩:您得到的结果与 使用的方法。

  • 问题内容: 我有一组HTML文件和一个SQLite数据库,我想使用file://方案从浏览器访问这些数据库。是否可以使用JavaScript访问数据库并创建查询(和表)? 问题答案: 不好的是,浏览器对它的支持非常有限。 这里更多信息HTML5索引,网络SQL数据库和浏览器大战 PS:正如@Christoph所说,WebSQL不再处于主动维护状态,并且Web应用程序工作组不打算进一步维护它,因此。

  • 问题内容: 我们的数据库中具有标量函数,用于返回诸如“客户的任务数量”或“客户的发票总额”之类的内容。 我们正在尝试并尝试不使用存储过程来执行此操作…通常,我们只需要在存储过程中调用此函数并将其作为单个值返回即可。 有没有一种方法可以在LINQ to SQL中使用或访问标量函数?如果是这样,那么我将有兴趣看到一个示例,该示例如何…如果没有,那么如何最好地处理这种情况…甚至是可行的。 问题答案: 如

  • 问题内容: 是否有一个(独立的!)Java API,它将XML- RPC接口包装到bugzilla?我不想为此编写自己的api,而且我实际上找不到能够做到这一点(而且只能做到这一点)的库。 更新: 我正在寻找 只用Java编写的类似http://oss.dbc.dk/bugzproxy/的东西 问题答案: 我知道这是一个有点老的话题,但是有相同问题的人很可能会在这里落下来。我想分享一篇博客文章,我

  • 问题内容: 我有这样的JavaScript: 这是行不通的,因为在成功功能的上下文中“ this”没有意义。有一个优雅的解决方案吗? 问题答案: 您正在寻找方法的参数。 它允许您设置将在其中调用所有回调的上下文。

  • 问题内容: 我想使用Streams.intRange(int start,int end,int step)实现反向排序的流。但是,似乎java.util.Streams类不再可用(但是它仍在标准库的rt.jar中)。此方法是在其他类中还是被其他方法替代? 问题答案: 实际上,JDK中再也没有这种方法了。您能获得的下一个最接近的位置是,但是只会一步一步走。 一种解决方案是实施您自己的解决方案。例如