javascript - 如何在不使用类名的情况下从类中访问类本身

标签 javascript ecmascript-6 es6-class

<分区>

是否可以在类函数中访问 class 本身:

class MyClass {
  static get myFunction() { return "foo"; }
  
  constructor() {
    console.log(MyClass.myFunction); // "foo" -- it works when using its name. This is what we want but without using the name
    console.log(this.myFunction); //undefined
    console.log(this.prototype.myFunction); //Cannot read property 'myFunction' of undefined
  }

}

new MyClass();

是否有可能实现与使用 MyClass.myFunction() 相同的效果并在不使用类名的情况下访问 static 方法(在这种情况下没有在这个例子中使用 MyClass

类似this.master.myFunction()的东西(我只是在这里制作master,显然不叫master)

JSBin:https://jsbin.com/hawituxosu/1/edit?js,console

这可能吗?谢谢!

最佳答案

你可以为此使用构造函数

Returns a reference to the Object constructor function that created the instance object

constructor 属性具有三个目的:

1.获取类对象。

2.创建一个新实例

3.调用 super 构造函数

class MyClass {
  static get myFunction() { return "foo"; }

  constructor() {
    console.log(this.constructor.myFunction); 
  }

}

new MyClass();

关于javascript - 如何在不使用类名的情况下从类中访问类本身,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53410992/

相关文章:

javascript - 在 React 中创建自定义输入类型文件按钮

javascript - 在 Firefox 中使用 eval 方法从字符串中获取类

javascript - angular2 http拦截器和注入(inject)SlimLoadingBarService不起作用?

javascript - 未捕获的语法错误 : Unexpected identifier in Spring MVC JSP

javascript - 就地编辑

javascript - 为什么 return getElementsBy** 不起作用?

javascript - 未捕获的 TypeError : XXX. 那么不是一个函数

javascript - 无法在 ES6 类上调用静态函数

javascript - 创建一个要在 Controller 上使用的类

javascript - Phonegap 移动应用程序中未定义 Socket.io 变量