gpt4 book ai didi

javascript - 获取位于同一对象中的函数的引用

转载 作者:行者123 更新时间:2023-11-28 17:26:59 24 4
gpt4 key购买 nike

我不明白为什么以下不起作用:

var foo = { f1: () => 5, f2: this.f1() }

我收到此错误:

TypeError: this.f1 is not a function

看起来this指的是全局范围而不是foo。一切正常,符合以下条件:

var foo = { f1: () => 5, f2() { return this.f1 } }

有没有一种方法可以引用 f1 而不将其包装在新函数中?

最佳答案

执行赋值的作用域是全局作用域,因此 this 不是 foo。人们可能会认为这样就可以解决问题:

var foo = { f1: () => 5, f2: foo.f1() }

但事实并非如此 - 因为在文字构造对象时,赋值尚未发生,并且 foo 仍然是未定义

您需要考虑时间安排,并编写以下内容之一:

var foo = { f1: () => 5 }
foo.f2 = foo.f1

var f = () => 5
var foo = { f1: f, f2: f }

当然,如果您只想在运行时解析为 f1,并且不想显式调用带括号的函数,您仍然可以将函数作为 getter 潜入:

var foo = { f1: () => 5, get f2() { return foo.f1 } }
foo.f2
# => [Function: f1]

关于javascript - 获取位于同一对象中的函数的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51324538/

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