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语句中参数的推理是啥的主要内容,如果未能解决你的问题,请参考以下文章

SQL 函数中的两个 return 语句是啥意思?

c语言中的RETURN()返回值是啥意思?

c语言中return语句的具体作用是啥?返回值是干嘛的,谁向谁返值,返到哪里?请回答的具体点,谢谢!

Python中return语句的参数都有哪些呢?

C++11 中的“return ”语句是啥意思?

是否需要在具有多个“return”语句的可变参数函数中的每个“return”语句之前调用“va_end()”?