gpt4 book ai didi

javascript - JavaScript 常量存储在浏览器中的什么位置?

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

我希望能够获取一个字符串并使用它来检索具有该字符串名称的常量的值。特别是,常量将等于箭头函数。

const foo = (bar) => { return bar }

我预计它会出现在窗口对象中,但它没有:

let fn = window['foo'] // undefined

现在,我唯一能弄清楚如何做到这一点的方法是使用旧的函数语法:

function foo(bar) { return bar }
let fn = window['foo'] // function foo(bar) { return bar }

当函数存储在常量中时,有没有办法从函数名称的字符串中获取函数?

编辑:

我觉得有必要澄清一下为什么我要开始定义这样的函数,因为大多数回复似乎都认为这种区别很重要。它本质上归结为范围和可变性。

箭头函数处理 this 关键字的方式更容易理解箭头函数,我相信这应该是标准行为,除非明确要求旧行为。

其次,可变性与 JavaScript 一起工作的方式,我认为将函数定义为常量会更安全一些。示例:

function foo(bar) { return bar }
// Elsewhere
let foo = 4;
// Back at the ranch
foo("return this string please") // foo is not a function.

最终,我认为这只会降低可变性,并且在使用 this 时也会减少意外情况。

最佳答案

只有全局变量 会在全局对象上分配一个匹配的属性。其他任何东西,包括常量,都不会。

常量的值不会自动出现在常量本身之外的任何地方。

如果您想通过字符串访问它,则将其存储为对象的属性(但最好不是全局对象,这是一个杂乱无章的困惑局面,与其他代码发生冲突的风险很大)。

关于javascript - JavaScript 常量存储在浏览器中的什么位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42285316/

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