bind函数的return语句中参数的推理是啥
Posted
技术标签:
【中文标题】bind函数的return语句中参数的推理是啥【英文标题】:what the reasoning of arguments in return statement of bind functionbind函数的return语句中参数的推理是什么 【发布时间】:2015-03-04 06:57:11 【问题描述】:我从 Leaflet api 获取了这段代码。
不知道 return fn.apply(obj, args || arguments);
中的 args 和 arguments 在做什么
bind: function (fn, obj) // (Function, Object) -> Function var args = arguments.length > 2 ? Array.prototype.slice.call(arguments, 2) : null; 返回函数() 返回 fn.apply(obj, args || 参数); ; ,
【问题讨论】:
见developer.mozilla.org/en-US/docs/Web/javascript/Reference/… 这对我来说看起来不对,因为它不允许用户绑定持久参数并同时输入他们自己的参数 我知道 bind 是做什么的,但是这里有很多额外的代码 @airnet 看起来它应该是一个垫片 【参考方案1】:如果您使用超过 2 个参数调用 bind,那么它将存储这些参数。当您调用 bind 返回的函数时,它将使用这些参数调用它。
如果你用两个或更少的参数调用bind,那么当你调用bind返回的函数时,它会用你当时传递的参数调用它。
这似乎不是正确的绑定实现。如果你想要一个绑定 polyfill,那么使用the one from MDN
【讨论】:
以上是关于bind函数的return语句中参数的推理是啥的主要内容,如果未能解决你的问题,请参考以下文章