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
初始化。这些初始化发生在实际构造函数主体之前,因此实例值可以由构造函数代码使用。
所以我只是在玩 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
初始化。这些初始化发生在实际构造函数主体之前,因此实例值可以由构造函数代码使用。