javascript - 如何使用 Javascript 在函数中访问全局变量?
问题描述
当我尝试在两个函数中访问全局变量时,我有疑问。一个函数是箭头函数,另一个函数是普通函数。箭头函数工作正常,但普通函数不能打印全局变量。为什么?
示例代码
class Data1{
constructor(m1){
this.m1 = m1
}
}
class Data2 extends Data1{
func1(){
console.log(this.m1)
this.m1 = 20
}
func2=()=>{
console.log(this.m1)
this.m1 = 40
}
}
d1 = new Data1(10)
d2 = new Data2()
d2.func1()
d2.func2()
输出
undefined
20
- 普通作用域函数和箭头作用域函数有什么区别?
- 如何在普通函数中访问全局函数?
解决方案
在常规函数中,this 关键字表示调用函数的对象,可以是窗口、文档、按钮或其他任何东西。
对于箭头函数,this 关键字始终表示定义箭头函数的对象。
如果您在 Data1 中编写构造函数并将 func1 绑定到 Data1 对象,它将起作用。例如。
constructor(){
this.func1 = this.func1.bind(this);
}
推荐阅读
- sql - 仅检索一组数据的最新项
- jquery - 将 Json 数据从我的 html 页面发送到 php
- vb.net - 如何计算 vb.net 中的日期差异并将星期六和星期日计算为 1?
- python - 循环多个列表的对应元素
- html - 重复线性渐变在 Edge 浏览器和 Internet Explorer 浏览器中不起作用
- ruby-on-rails - 我该如何解决这个问题 - rake:aborted!Mysql2::Error: Access denied for user 'root'@'localhost' (使用密码: NO)
- c++ - 使用 opencv convexHul 获取给定点的面积。- 在点到 Mat 转换过程中发生错误
- c# - 如何使用 async / await 在 C# 中以定义的并行度运行大量任务?
- sapui5 - 在没有 Fiori 客户端的浏览器中使用 sap.ndc.BarcodeScanner
- javascript - 提示不返回 NULL 消息