Javascript 使用Function.apply时泄漏参数
我在GitHub上读到了petkaantonov/bluebird上的文章。当到达章节时,我意识到在我的项目中使用Javascript 使用Function.apply时泄漏参数,javascript,memory-leaks,arguments,bind,apply,Javascript,Memory Leaks,Arguments,Bind,Apply,我在GitHub上读到了petkaantonov/bluebird上的文章。当到达章节时,我意识到在我的项目中使用bind和apply可能会出错 《华盛顿邮报》指出: 请注意,将属性添加到函数(例如,fn.$inject=…)和绑定函数(即,Function#bind)会生成隐藏类,因此在使用#apply时,不安全 我过去可以像这样将参数数组传递给构造函数: new (Cls.bind.apply(Cls, arguments))(); 这看起来很可疑,很像帖子中描述的不安全。 这是真的吗?我
bind
和apply
可能会出错
《华盛顿邮报》指出:
请注意,将属性添加到函数(例如,fn.$inject=…
)和绑定函数(即,Function#bind
)会生成隐藏类,因此在使用#apply
时,不安全
我过去可以像这样将参数数组传递给构造函数:
new (Cls.bind.apply(Cls, arguments))();
这看起来很可疑,很像帖子中描述的不安全。
这是真的吗?我是不是做错了
我只是想了解这篇文章中的问题是否适用于这个示例案例,特别是因为对答案进行评论可能会很有用,这样其他人就不会犯同样的错误(这篇文章的投票率很高,所以人们似乎经常使用这个解决方案)
注意:我最近发现了(awesome),这是一个很好的替代方案,可以替代我以前的解决方案:
new Cls(...arguments);
它还表示可以将
参数
传递到apply()