使用Function.apply时泄漏参数

时间:2016-06-21 07:59:23

标签: javascript memory-leaks arguments bind apply

我在 petkaantonov / bluebird https://developer.xamarin.com/api/type/Android.Webkit.JavascriptInterface/ 上阅读GitHub。当到达章节 Optimization killers 特别是3.3 what-is-safe-arguments-usage部分时,我意识到在项目中使用applyfn.$inject =...可能会出错。

帖子声明:

  

请注意,向函数添加属性(例如Function#bind)和绑定函数(即#apply的结果)会生成隐藏类,因此不安全时使用new (Cls.bind.apply(Cls, arguments))();

我使用What is safe arguments usage?能够将一个参数数组传递给我的构造函数,如下所示:

new Cls(...arguments);

这看起来非常像帖子中描述为 not safe 的内容。 这是真的?我在这里错了吗?

我只想了解帖子中的问题是否适用于此示例案例,尤其是因为对答案进行评论可能有用,因此其他人不会犯同样的错误(帖子大量上调)所以看起来很多人都在使用这个解决方案。

注意:我最近发现了this answer on the question Use of .apply() with 'new' operator. Is this possible?(真棒),这是我以前的解决方案的一个不错的选择:

ClassMetadata

0 个答案:

没有答案