gpt4 book ai didi

javascript - 如何获得绑定(bind) `this` 和封闭变量?

转载 作者:搜寻专家 更新时间:2023-11-01 05:03:48 25 4
gpt4 key购买 nike

是否有可能从函数中获取绑定(bind)到 this 的所有内容以及所有封闭变量?

例如

 function f() { console.log(this); }
let x = f.bind(7);
function g() { console.log(x); }
  1. 是否可以从 x 中提取 7

  2. gx 上关闭。是否可以从 g 获取封闭变量数组?

最佳答案

Is it possible to extract that 7 from x?

没有。 f 必须明确地为您提供检索this 的方法(例如,function f() { return this; })。既然没有,你就不能。

在规范术语中,您询问是否可以从函数中检索 [[BoundThis]] 内部槽的值。 [[BoundThis]] 在规范中只出现了三次: Where bound function exotic objects被描述,他们的[[Call]] internal operation被描述,process of creating them在哪里被概述。因此,不在允许您检索值的操作中。

g closes over x. Is it possible to get array of closed-over variables from g?

没有。 :-) 就拥有私有(private)信息和公共(public) API 而言,这是一件好事。

提供这将需要一种方法来访问 lexical environment 中的绑定(bind)列表附加到 g 及其所有外部词法环境的对象。规范中没有。


没有规范不能添加其中一个或两个的原因,但我认为(这只是我个人的猜测)TC39(决定这些事情的委员会)将很难推销第一次和第二次几乎不可能卖出(这对实现产生了巨大的负面影响)。

关于javascript - 如何获得绑定(bind) `this` 和封闭变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41553374/

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