当前位置:  开发笔记 > 编程语言 > 正文

如何绑定`this`和关闭变量?

如何解决《如何绑定`this`和关闭变量?》经验,为你挑选了1个好方法。

是否有可能this从函数中得到任何约束和所有已关闭的变量?

例如

 function f() { console.log(this); }
 let x = f.bind(7);
 function g() { console.log(x); }

    是否有可能提取7x

    g结束了x.是否有可能获得一系列封闭变量g

T.J. Crowder.. 9

是否有可能提取7x

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

在规范术语中,您询问是否可以从函数中检索[[BoundThis]]内部插槽的值.[[BoundThis]]仅在规范中出现三次:其中描述了绑定函数奇异对象,其中描述了它们的[[Call]]内部操作,并概述了创建它们的过程.因此,不是在允许您检索值的操作中.

g结束了x.是否有可能获得一系列封闭变量g

不.:-)在拥有私人信息和公共API方面,这是一件好事.

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


没有规范的原因,其中一个或两个都无法添加,但我认为(这只是我的个人推测)TC39(决定这些事情的委员会)将是第一次出售并几乎不可能出售第二(具有大量和负面的实施影响).



1> T.J. Crowder..:

是否有可能提取7x

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

在规范术语中,您询问是否可以从函数中检索[[BoundThis]]内部插槽的值.[[BoundThis]]仅在规范中出现三次:其中描述了绑定函数奇异对象,其中描述了它们的[[Call]]内部操作,并概述了创建它们的过程.因此,不是在允许您检索值的操作中.

g结束了x.是否有可能获得一系列封闭变量g

不.:-)在拥有私人信息和公共API方面,这是一件好事.

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


没有规范的原因,其中一个或两个都无法添加,但我认为(这只是我的个人推测)TC39(决定这些事情的委员会)将是第一次出售并几乎不可能出售第二(具有大量和负面的实施影响).

推荐阅读
重庆制造漫画社
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有