我最近想知道为什么Function.prototype.bind
被赋予了两个目的,经过一些谷歌搜索似乎是故意的,因为Dmitry Soshnikov在他的article about bind中明确表示完全相同:
Function.prototype.bind的当前实现有两个目的,即静态绑定此值和部分应用函数。让我们考虑一下。
这似乎是对单一责任原则的不必要违反,并创建了以下内容,通常用于您不关心函数中此值的内容:
f.bind(undefined, argA, argB);
所以问题是这是不恰当的设计还是有充分的理由。