Javascript:在类构造函数之前调用IIfe

Amo*_*pta 3 javascript iife

因此,我只是在玩javascript,我在类的构造函数之前被调用了一个带有类的类。

class SomeClass {
  constructor() {
    console.log('Constructor Called.');
  };

  someIife = (() => {
    console.log('iife called');
    return () => { }
  })()
};

const someClass = new SomeClass();
Run Code Online (Sandbox Code Playgroud)

输出是-

ife妇叫

构造函数称为。

这是设计使然吗?我不确定发生了什么。

似乎真的很有趣,请有人解释为什么会这样。

谢谢。

Poi*_*nty 6

从类声明中生成的构造函数实际上是这样的:

  function SomeClass() {
    this.someIife = (() => {
      console.log('iife called');
      return () => { 

      }
    })();
    console.log("constructor called");
  }
Run Code Online (Sandbox Code Playgroud)

class主体中的实例变量声明在this.something构造函数的主体中转换为初始化。这些初始化发生在实际的构造函数主体之前,因此构造函数代码可以使用实例值。