为什么在定义了一些从对象到变量上下文的方法后丢失了?

瓦格斯(Vardges Hovhannisyan)

请帮助获得答案我不明白为什么定义后上下文丢失

    class A {
    	func() {
    		console.log(this)
    	}
    }
    
    let a = new A();
    let b = a.func;
    b();

杰克·灰烬-Mohit Gawande

您可以参考此内容以澄清您的疑问。

如果您在对象上调用函数,JavaScript会将该对象视为其this / context。

例如。

let obj = {
   key : 'value',
   fun : function(){

   }
}
// if called like obj.fun() --> obj is going to be this
// if called like let ffun = obj.fun; ffun();  ---> window/global object is going to be this

如果使用call / apply / bind调用该方法,则需要将自定义上下文指定为这些方法的第一个参数。

//if call like obj.fun.call(someObject, p1, p2)
// Or obj.fun.apply(someObject, [p1, p2])
// Or let ffun = obj.fun.bind(someObject, [p1, p2]);   ffun();
// someObject is going to be this in all these 3 cases

在其他情况下,直接调用函数时,它将窗口/全局对象作为其上下文。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何为用户/连接设置一些上下文变量

来自分类Dev

Orion上下文代理更新一些属性

来自分类Dev

对象变量在PHP pthread中丢失上下文

来自分类Dev

为什么必须通过环境变量传递Core Data上下文对象?

来自分类Dev

QQmlApplicationEngine设置后丢失上下文

来自分类Dev

为什么在抛出实例时我的自定义异常类类型会丢失上下文?

来自分类Dev

如何从子上下文检索对象到另一个上下文?

来自分类Dev

为什么我的上下文中有一个空对象?

来自分类Dev

有什么方法可以在v8上下文的全局对象中拦截函数定义?

来自分类Dev

当我们将方法存储在变量中然后调用它时,为什么上下文对象更改为全局窗口对象?

来自分类Dev

在静态方法中丢失上下文

来自分类Dev

为什么这是一个静态上下文?

来自分类Java

一些豆在应用程序上下文的依赖关系形成循环

来自分类Dev

在传递一些上下文时如何在expressjs中重定向?

来自分类Dev

如何在Django QuerySet的每个条目中添加一些上下文

来自分类Dev

上下文菜单仅显示了一些TableView行javafx fxml

来自分类Dev

如何从json数组的长度和上下文中获取一些数据

来自分类Dev

检查上下文是否有一些表然后添加到这个表

来自分类Dev

在 React 中将对象方法分配为 DOM 事件处理程序时,我在哪里可以找到关于为什么 `this` 上下文未定义的文档?

来自分类Dev

选择一些文本后,如何添加一个名为“在资源管理器中打开”的项目以右键单击上下文菜单?

来自分类Dev

与 Pythonic 版本相比,为什么在 PySpark 转换后我会丢失数据帧中的一些记录?

来自分类Dev

流星:为什么我通过将function(){}切换为()=> {}来丢失数据上下文?

来自分类Dev

为什么在使用反应上下文时会出现丢失的 <Text> 错误?

来自分类Dev

什么是上下文感知变量?

来自分类Dev

将变量从上下文传递到另一个上下文

来自分类Java

什么是上下文对象设计模式?

来自分类Dev

什么是Vuex“上下文”对象?

来自分类Dev

为什么意图需要上下文?

来自分类Dev

为什么上下文=无?

Related 相关文章

  1. 1

    如何为用户/连接设置一些上下文变量

  2. 2

    Orion上下文代理更新一些属性

  3. 3

    对象变量在PHP pthread中丢失上下文

  4. 4

    为什么必须通过环境变量传递Core Data上下文对象?

  5. 5

    QQmlApplicationEngine设置后丢失上下文

  6. 6

    为什么在抛出实例时我的自定义异常类类型会丢失上下文?

  7. 7

    如何从子上下文检索对象到另一个上下文?

  8. 8

    为什么我的上下文中有一个空对象?

  9. 9

    有什么方法可以在v8上下文的全局对象中拦截函数定义?

  10. 10

    当我们将方法存储在变量中然后调用它时,为什么上下文对象更改为全局窗口对象?

  11. 11

    在静态方法中丢失上下文

  12. 12

    为什么这是一个静态上下文?

  13. 13

    一些豆在应用程序上下文的依赖关系形成循环

  14. 14

    在传递一些上下文时如何在expressjs中重定向?

  15. 15

    如何在Django QuerySet的每个条目中添加一些上下文

  16. 16

    上下文菜单仅显示了一些TableView行javafx fxml

  17. 17

    如何从json数组的长度和上下文中获取一些数据

  18. 18

    检查上下文是否有一些表然后添加到这个表

  19. 19

    在 React 中将对象方法分配为 DOM 事件处理程序时,我在哪里可以找到关于为什么 `this` 上下文未定义的文档?

  20. 20

    选择一些文本后,如何添加一个名为“在资源管理器中打开”的项目以右键单击上下文菜单?

  21. 21

    与 Pythonic 版本相比,为什么在 PySpark 转换后我会丢失数据帧中的一些记录?

  22. 22

    流星:为什么我通过将function(){}切换为()=> {}来丢失数据上下文?

  23. 23

    为什么在使用反应上下文时会出现丢失的 <Text> 错误?

  24. 24

    什么是上下文感知变量?

  25. 25

    将变量从上下文传递到另一个上下文

  26. 26

    什么是上下文对象设计模式?

  27. 27

    什么是Vuex“上下文”对象?

  28. 28

    为什么意图需要上下文?

  29. 29

    为什么上下文=无?

热门标签

归档