首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么我的公共变量显示为“'this‘is not available"?

问题:为什么我的公共变量显示为“'this' is not available"?

回答: 这个错误信息通常出现在JavaScript中,它表示在当前上下文中,无法访问到公共变量。下面是一些可能导致这个问题的原因和解决方法:

  1. 变量作用域问题:请确保你在访问公共变量时,处于正确的作用域内。如果变量是在某个函数内部定义的,你需要确保在函数外部也能访问到它。你可以将变量定义在全局作用域中,或者通过将变量作为对象的属性来实现公共访问。
  2. this指向问题:在JavaScript中,this关键字表示当前执行上下文的对象。如果你在一个函数内部使用this来引用公共变量,但该函数没有正确绑定this的值,就会导致该错误。你可以使用bind()、call()或apply()方法来确保函数内部的this指向正确的对象。
  3. 变量命名冲突:请确保你的公共变量没有与其他变量或函数发生命名冲突。如果存在命名冲突,JavaScript可能无法正确识别你要访问的是哪个变量。
  4. 异步代码问题:如果你的代码中存在异步操作,比如回调函数或Promise,那么在异步操作完成之前,你可能无法访问到公共变量。你可以使用回调函数、Promise的.then()方法或async/await来处理异步操作,确保在访问公共变量时已经完成了必要的异步操作。

总结: 当公共变量显示为“'this' is not available"时,可能是由于变量作用域问题、this指向问题、变量命名冲突或异步代码问题导致的。你可以通过检查这些可能的原因,并采取相应的解决方法来解决该问题。

腾讯云相关产品和产品介绍链接地址:

  • 云函数(Serverless):https://cloud.tencent.com/product/scf
  • 云数据库 MySQL 版:https://cloud.tencent.com/product/cdb_mysql
  • 云存储 COS:https://cloud.tencent.com/product/cos
  • 人工智能平台:https://cloud.tencent.com/product/ai
  • 物联网平台:https://cloud.tencent.com/product/iotexplorer
  • 移动开发平台:https://cloud.tencent.com/product/mad
  • 区块链服务 BaaS:https://cloud.tencent.com/product/baas
  • 腾讯会议:https://cloud.tencent.com/product/tcmeeting
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

为什么局部内部类访问外边局部变量必须final

6.局部内部类访问外边局部变量时,此变量必须final类型  马克-to-win:由于技术方面的限制,java设计者们做出如下语法规定:局部内部类访问外边局部变量时,此变量必须final类型...,(为什么请参考参考目录)马克-to-win:否则会报一个错误:Cannot refer to a non-final variable i inside an inner class defined...in a different method  例2.6 class ShellMark_to_win {    int x = 100;//x是类变量, 内部类访问时不用加final。    ...void test() {         for (int i = 0; i < 2; i++) { /*马克-to-win:下面的y和str是局部变量,内部类访问时必须加final  */             ...            class Core {                 void display() {                     System.out.println("外部类x

58530

​2021-03-06:go中,公共变量是协程安全吗?赋值操作是原子吗?为什么

2021-03-06:go中,公共变量是协程安全吗?赋值操作是原子吗?为什么? 福哥答案2021-03-06: 这是面试中被问到。实力有限,真正答案还不知道。...想法是a=1是原子操作,a=b不是原子操作。实际开发中,不大可能是a=1这种情况,可以说是协程不安全。...所以公共变量非协程安全,赋值操作是否原子跟变量类型及机器架构有关(指令集)。...葡萄❤柠檬 16:06:47 为什么io密集型,线程数是2倍呢?....github.io 16:28:09 今天每日一题是最快一次 题078_ Tnze 10:27:04 公共变量不是协程安全,赋值操作不是原子 Tnze 10:27:45 这是由于线代多核

1.3K10

Tkinter mainloop() 循环逻辑,以及变量为什么不会被重新赋值初始值?

1、问题背景在使用 Tkinter 开发 GUI 程序时,您可能会遇到这样疑问:为什么在使用 window.mainloop() 循环时,变量不会被重新赋值它们初始值?...既然如此,为什么一个变量(例如 canvastext)可以被更新并保持更新状态?...也许对 window.mainloop() 作用完全误解了,但如果它确实使程序不断循环执行代码,那么为什么不将变量重新赋值它们初始值呢?...当用户选择下拉列表中选项时,我们会更新画布上文本,并将新文本显示出来。...希望这篇技术文章能够帮助您理解 Tkinter window.mainloop() 循环逻辑,以及变量为什么不会被重新赋值初始值。

15910

技术分享 | 为什么 MySQL 客户端字符集 latin1

问题背景 司某客户最近在检查一批新安装 MySQL 数据库时,发现了下面的现象: 该批次 MySQL 客户端字符集全部 Latin1 ; 而之前使用同样参数模板部署 MySQL ,客户端字符集却为...utf8 ; 已知 MySQL 版本 5.7.32 ,服务器操作系统 Redhat 7 ,那么为什么两次安装 MySQL 字符集会不一样呢?...Latin1 [qinguangfei0511-5.png] 那么,为什么会这样呢,我们看下官方文档上是怎么说:https://dev.mysql.com/doc/refman/5.7/en/charset-connection.html...,MySQL 5.7 是 latin1 ,MySQL 8.0 utf8mb4 ; 每个客户端工具都会检测操作系统字符集,比如Linux系统LANG环境变量值,如果MySQL支持操作系统字符集,就会使用操作系统...参数指定; 控制 MySQL Client 级别字符集三个参数需要保持一致,一般来说utf8(MySQL 8.0 utf8mb4),同时又与 MySQL Client 所在服务器字符集有关;

1.9K30

技术分享 | 为什么 MySQL 客户端字符集 latin1

问题背景 司某客户最近在检查一批新安装 MySQL 数据库时,发现了下面的现象: 该批次 MySQL 客户端字符集全部 latin1 ; 而之前使用同样参数模板部署 MySQL ,客户端字符集却为...utf8 ; 已知 MySQL 版本 5.7.32 ,服务器操作系统 Redhat 7 ,那么为什么两次安装 MySQL 字符集会不一样呢?...=utf8mb4 最后,又查看了服务器上操作系统字符集,发现有问题 en_US ,而原先 en_US.UTF-8 好像找到了问题出在哪里,测试环境验证下,果然当服务器字符集设置 en_US...后,MySQL 客户端字符集变为了 latin1 那么,为什么会这样呢,我们看下官方文档上是怎么说:https://dev.mysql.com/doc/refman/5.7/en/charset-connection.html...,MySQL 5.7 是 latin1 ,MySQL 8.0 utf8mb4 ; 每个客户端工具都会检测操作系统字符集,比如 Linux 系统 LANG 环境变量值,如果 MySQL 支持操作系统字符集

1.4K30

如何在一个Ubuntu 16.04服务器上将Nginx配置Web服务器和Apache反向代理

注意:配置反向代理时,Web服务器通常设置侦听127.0.0.1:8080,但这样做会将PHP环境变量SERVER_ADDR值设置环回IP地址而不是服务器公共IP。...变量HTTPXREAL_IP和HTTPXFORWARDED_FOR由Nginx添加,并应显示您用于访问URL计算机公共IP地址。 我们已成功设置Nginx以将特定域请求代理到Apache。...REMOTE_ADDR变量现在也将是本地计算机公共IP地址变量。 第九步 - 设置HTTPS网站(可选) 在此步骤中,我们将为Apache上托管域配置SSL证书。...每次公共名称输入适当域。...通过设置这些变量,PHP应用程序不必专门配置在反向代理后面工作。 第十步 - 阻止对Apache直接访问(可选) 由于Apache正在公共IP地址上侦听端口8080,因此每个人都可以访问它。

4.2K30

当一个Java 全栈高级开发工程师 入职拿到新电脑,他又会做什么呢?

配置环境变量 WIN+R :sysdm.cpl -->高级—>环境变量,这里需要配两个东西 上面这个是你nvm.exe目录,下面这个是nodejs快捷方式地址 最后在Path地址加上这两个 3,换源...设置[arch]“全部”以安装32和64位版本。 nvm list [available]:列出node.js安装。available在末尾键入以显示可供下载版本列表。...nvm proxy [url]:设置用于下载代理。留[url]空白,以查看当前代理。设置[url]“无”以删除代理。 nvm uninstall :卸载特定版本。...nvm root :设置nvm应在其中存储不同版本node.js目录。如果 未设置,将显示当前根目录。...4,为什么你拉取vue项目跑不起来 之前跑了很多大型开源前端vue项目,最终发现,跑不起来大都是因为node-sass跟nodejs版本不对应,这个时候按照如下版本依赖关系,版本对应关系,用nvm

9510

如何在一个Ubuntu 18.04服务器上将Nginx配置Web服务器和Apache反向代理

避免这种情况,您将安装一个名为mod_rpafApache模块,该模块会重写某些环境变量,让Apache看起来似乎是在直接处理来自Web客户端请求。 我们将在一台服务器上托管四个域名。...:8080,但这样做会将PHP环境变量SERVER_ADDR值设置环回IP地址而不是服务器公共IP。...向下滚动到PHP Variables部分并检查显示值。 变量SERVER_SOFTWARE和DOCUMENT_ROOT出现就表明此请求是由Apache处理。...变量HTTP_X_REAL_IP和HTTP_X_FORWARDED_FOR由Nginx添加,并应显示您用于访问URL计算机公共IP地址。...该REMOTE_ADDR变量现在也将是你本地计算机公网IP地址。 现在让我们每个站点设置TLS / SSL加密。

4.7K01

JDK 从老版本升级到 1.8问题总结

但是,对于一些老项目,升级到 JDK8 则存在一些兼容性问题,是否升级需要酌情考虑。 近期,在工作中遇到一个任务,将部门所有项目的 JDK 版本升级到 1.8 (老版本大多是 1.6)。...选择 JRE 1.8 Linux 环境修改 修改环境变量 修改 /etc/profile 中 JAVA_HOME,设置 jdk8 所在路径。...检查环境变量是否添加成功测试: echo $JAVA_HOME ? 编译、发布脚本中如果有 export JAVA_HOME ,需要注意,需要使用 jdk8 路径。...以下示例显示如何将类类元数据上限设置 256 MB: XX:MaxMetaspaceSize=256m 字节码问题 ASM 5.0 beta 开始支持 JDK8 字节码错误 Caused by: java.io.IOException...然后,在部署时出现过编译后仍报错情况,重启一下服务器后,问题解决 .

3.2K10

常见线程同步方法及案例

它可以控制对公共资源访问次数,当没有可用资源时,请求资源线程会被阻塞。条件变量(Condition Variable)条件变量通常与互斥锁一起使用,以允许线程在特定条件下等待并阻塞。...它可以控制对公共资源访问次数,当没有可用资源时,请求资源线程会被阻塞。 在 Java 中,可以使用 Semaphore 类实现信号量。...(Condition Variable)条件变量通常与互斥锁一起使用,以允许线程在特定条件下等待并阻塞。...在 Java 中,可以使用 ReentrantLock 类和 Condition 接口实现条件变量。...在选择合适同步策略时,需要考虑性能、可扩展性和易用性等因素。正在参与2023腾讯技术创作特训营第三期有奖征文,组队打卡瓜分大奖!

21910

你不应该依赖CSS 100vh,这就是原因!

图片 为什么100vh问题会发生在移动设备上? 对这个问题进行了一番调查,发现了其中原因。简短答案是,浏览器工具栏高度没有被考虑在内。...如果你想深入了解为什么会发生这种情况,Stack Overflow这个帖子很有帮助。 如何修复移动设备上100vh问题? 第一个建议是尽量少用 vh。...Safari上垂直 padding 问题 在 min-height(或 height) fill-available元素上添加垂直 padding (bottom 和 top),Safari浏览器上会导致问题...一些开发者喜欢根据窗口内部高度定义一个CSS变量,并使用该变量来设计他们所需元素。...代码如下: // 以像素单位计算1vh值 // 基于窗口内部高度 var vh = window.innerHeight * 0.01; // 将CSS变量设置根元素 // 相当于1vh document.documentElement.style.setProperty

1.2K40

FFmpeg 参数使用说明

FFmpeg可以被各种代码语言调用,帮助用户轻松完成各种视频音频处理,是编程人员非常熟悉一款多媒体处理工具。KK下载站您提供FFmpeg官方下载,有需要朋友可以下载使用哦!...FFmpeg环境变量配置 1、将下载ffmpeg解压到指定目录下,博主解压在:G:\【1】软件(已经过测试)目录下; 2、右击此电脑——>属性——>高级系统设置——>环境变量。...在系统变量path变量里添加解压路径。...libavformat:用于各种音视频封装格式生成和解析,包括获取解码所需信息以生成解码上下文结构 和读取音视频帧等功能; libavcodec:用于各种类型声音/图像编解码; libavutil:包含一些公共工具函数...一个 HTTP 多媒体即时广播串流服务器; ffplay:是一个简单播放器,使用ffmpeg 库解析和解码,通过SDL显示; FFmpeg功能介绍 1、视频采集功能 ffmpeg视频采集功能非常强大

1.3K30

c#接口interface学习

而抽象类中可以有方法实现,也可以定义非静态变量。 抽象类可以提供某些方法部分实现,接口不可以。抽象类实例是它子类给出。接口实例是实现接口类给出。...在抽象类中加入一个方法,那么它子类就同时有了这个方法。而在接口中加入新方法,那么实现它类就要重新编写 (这就是为什么说接口是一个类规范了)。...接口成员被定义公共,但抽象类成员也可以是私有的、受保护、内部或受保护内部成员 (其中受保护内部成员只能在应用程序代码或派生类中访问)。...在抽象类中加入一个方法,那么它子类就同时有了这个方法。而在接口中加入新方法,那么实现它类就要重新编写(这就是为什么说接口是一个类规范了)。...接口成员被定义公共,但抽象类成员也可以是私有的、受保护、内部或受保护内部成员(其中受保护内部成员只能在应用程序代码或派生类中访问)。

57920

零基础学Java(12)静态字段与静态方法

大家好,又见面了,是你们朋友全栈君。 静态字段与静态方法   之前我们都定义main方法都被标记了static修饰符,那到底是什么意思?...下面我们来看看 静态字段   如果将一个字段定义static,每个类只有一个这样字段。而对于非静态实例字段,每个对象都有自己一个副本。例如,假设需要给每一个员工赋予唯一标识码。...  harryid字段被设置静态字段nextId当前值,并且静态字段nextId值加1: harry.id = Employee.nextId; Employee.nextId++ 静态常量...  静态变量使用比较少,但静态常量却很常用。....; ... }   前面曾经多次提到过,由于每个类对象都可以修改公共字段,所以,最好不要有公共字段。然而,公共常量(即final字段)却没问题。

28520

在 vue 项目中使用各种 javascript 类库

但是随着你项目的增长,你会想要将代码分离单一组件文件跟模块文件。同时,你可能也会想要让你应用能运行在不同环境下,比如可以通过服务端渲染。...'Lodash is available here!'...虽然不是必须,这个前缀加到这些属性上也是为了提醒那些失了智开发者(不用看,还是你),这是一个公共 API 属性或者方法,欢迎使用,不像其他实例属性可能只是给 Vue 内部使用。...作为一个基于原型链语言,Javascript 没有(真正意义上)类,因此也没有所谓 “私有” 和 “公共变量或者是 “静态” 方法。...写一个插件 首先,插件创建一个文件。在这个例子中将会写一个把 Axios 添加到你所有的 Vue 示例和组件插件,因此将文件命名为 axios.js。

2K10

如何在Ubuntu 16.04上设置Nginx服务器块(虚拟主机)

第二步:每个站点创建示例页面 现在我们已经设置了目录结构,让我们每个站点创建一个默认页面,以便我们可以显示一些内容。...我们现在有一些页面可以显示给我们两个域访问者。 第三步:每个域创建服务器块文件 现在我们已经拥有了我们希望提供内容,我们需要实际创建服务器块,告诉Nginx如何执行此操作。...(显示在最左侧列中),Nginx将会抱怨配置无效。...您需要知道服务器公共IP地址以及要路由到服务器域。...假设服务器公共IP地址是203.0.113.5,将添加到我文件行看起来像这样: 127.0.0.1 localhost . . . ​ 203.0.113.5 example.com www.example.com

4.9K10

JDK 升级问题小结

但是,对于一些老项目,升级到 JDK8 则存在一些兼容性问题,是否升级需要酌情考虑。 近期,在工作中遇到一个任务,将部门所有项目的 JDK 版本升级到 1.8 (老版本大多是 1.6)。....* 包供开发者使用,因为这些接口不是公共接口,不能保证在所有 Java 兼容平台上工作。 使用了这些 API 程序如果要升级到 JDK 1.8 需要寻求替代方案。...需要详细了解为什么不要使用 sun.* ,可以参考官方文档:Why Developers Should Not Write Programs That Call 'sun' Packages 默认安全策略修改...升级后估计有些小伙伴在使用不安全算法时可能会发生错误,so,支持不安全算法还是有必要 找到$JAVA_HOME下 jre/lib/security/java.security ,将禁用算法设置空...以下示例显示如何将类类元数据上限设置 256 MB: XX:MaxMetaspaceSize=256m 资料 Compatibility Guide for JDK 8 Compatibility

1.9K50
领券