我从Leaflet api那里获取了这段代码。
不知道return fn.apply(obj, args || arguments);
bind: function (fn, obj) { // (Function, Object) -> Function var args = arguments.length > 2 ? Array.prototype.slice.call(arguments, 2) : null; return function () { return fn.apply(obj, args || arguments); }; },
答案 0 :(得分:2)
如果用超过2个参数调用bind,那么它将存储这些参数。当你调用bind返回的函数时,它将使用这些参数调用它。
如果使用2个或更少的参数调用bind,那么当您调用bind返回的函数时,它将使用您当时传递的参数调用它。
这似乎不是bind的正确实现。如果需要绑定polyfill,请使用the one from MDN