gpt4 book ai didi

javascript - 无法读取 CoffeeScript 全局变量

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

我有两个 CoffeeScript 文件,第一个有以下几行:

jQuery(document).ready ($) ->
dispatcher.bind "createuserchannel", (channelid) ->
root = (exports ? this)
root.channel_user = dispatcher.subscribe(channelid)

以及后者:

jQuery(document).ready ($) ->
root = (exports ? this)
console.log root.channel_user

我不知道为什么,但在 Chrome 控制台中,当我编写 Object.keys(window) 时,channel_user 显示为全局变量,但如果我尝试访问Javascript 中的它只能得到 Undefined

最佳答案

在 jQuery 事件的回调中(例如第二种情况),jQuery 将 this 设置为触发事件的对象(在本例中为 document)。我认为您有两个选择:

首先,您可以显式使用window。目前尚不清楚这是否适合您的用例。

root = (exports ? window)

其次,您可以使用 CoffeeScript 粗箭头从外部作用域中保留 this 。请注意,如果您在该函数的其他任何地方依赖于其他 this 行为,这将会导致麻烦。

jQuery(document).ready ($) =>

我假设您的第二种情况也会发生同样的情况,但如果不确切知道 dispatcher 是什么,就不可能确定。

关于javascript - 无法读取 CoffeeScript 全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23345141/

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