我在 petkaantonov / bluebird https://developer.xamarin.com/api/type/Android.Webkit.JavascriptInterface/ 上阅读GitHub。当到达章节 Optimization killers 特别是3.3 what-is-safe-arguments-usage部分时,我意识到在项目中使用apply
和fn.$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