我试着对javascript的bind()如何工作进行排序.
如果我这样做,我会看到
var f = function (a) { ... }
var g = f.bind(obj);
g(1)
Run Code Online (Sandbox Code Playgroud)
然后用objas as this和1as 调用f a.
我认为g是围绕f的包装函数.
但是,当我这样做
var f = function (a) { ... }
var g = f.bind(obj);
g.call(1)
Run Code Online (Sandbox Code Playgroud)
然后使用1as this和aundefined 调用f .
因此,似乎g不仅仅是一个简单的包装器,而且call以某种方式区分正常和绑定函数.
还有一件事是我不能多次部分应用一个函数.
var f = function (a) { ... }
var g = f.bind(obj);
var h = g.bind(1);
h();
Run Code Online (Sandbox Code Playgroud)
然后使用objas this和aundefined 调用f . …