gpt4 book ai didi

javascript - 将函数绑定(bind)到 baz 后调用 fn.apply(bar,[])

转载 作者:行者123 更新时间:2023-11-29 21:31:13 25 4
gpt4 key购买 nike

想知道在 JavaScript/Node.js 中什么优先

如果我这样做:

var baz = {};
var bar = {};

var fn = function foo(){}.bind(baz);

fn.apply(bar, []);

fn 总是有 baz 的上下文吗?有什么理由吗?

最佳答案

fn 函数总是将上下文设置为 baz 对象。它以这种方式实现,以确保在使用 bind 后您不会丢失上下文。

来自 MDN description bind() 方法:

The bind() function creates a new function (a bound function) with the same function body (internal call property in ECMAScript 5 terms) as the function it is being called on (the bound function's target function) with the this value bound to the first argument of bind(), which cannot be overridden.


当绑定(bind)函数可以接收另一个上下文时有一个异常(exception):fn 作为构造函数被调用:var o = new fn()。在这种情况下,上下文将成为新的实例对象(但应避免这种情况并用于构造函数的正常函数)。

This chapter详细描述了 .bind() 方法。

关于javascript - 将函数绑定(bind)到 baz 后调用 fn.apply(bar,[]),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36419430/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com