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

Javascript: IIfe called before class constructor

所以我只是在玩 javascript,我有一个定义了 class 的 iife,它在 class 构造函数之前被调用。

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

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

const someClass = new SomeClass();

输出为-

iife called

Constructor Called.

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

看起来很有趣,谁能解释一下为什么会这样。

谢谢。

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

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

      }
    })();
    console.log("constructor called");
  }

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