javascript - 为什么从函数引用调用静态类方法时未定义但直接调用时未定义?
问题描述
我试图从对该方法的引用中调用一个类的静态方法,但是当我这样做时,“this”变量是未定义的:
class SomeClass {
static test() {
console.log(this);
}
}
SomeClass.test(); // logs reference to class as desired
let fn = SomeClass.test;
fn(); // logs undefined
let fn2 = () => { SomeClass.test(); }
fn2(); // logs reference to class as desired
为什么在 fn() 调用中未定义“this”?有没有办法确保它的定义?将方法包装在像 fn2() 这样的匿名函数中可以解决问题,但有点难看。fn1 的这种行为是否在 Javascript 中给出了这种未定义的设计?
解决方案
推荐阅读
- css - 如何在更改屏幕宽度的同时使绝对定位元素在另一个元素之前结束?
- c# - C# WebBrowser 在导航时卡住
- flutter - 标签是什么,
由 Flutter for Web 生成? - powershell - Azure devops rest api 结果循环使用 powershell 脚本
- android - 扩展 MaterialButton:应该做吗?SavedState 具有包可见性
- r - Labeling Rows Based on Time Difference from Flagged Row
- scala - Generating a random List() of List(List(Doubles))
- html - Card flip on click instead of hover
- python - How to add a constant value to every element of a Numpy array but the diagonal elements?
- typescript - TypeScript: override a method return type that has overloads