在 ES6 中,可以定義匿名類別並立即實例化它們。雖然這種語法一開始看起來很吸引人,但了解它的陷阱以及為什麼通常應該避免它是至關重要的。
要直接實例化匿名類,我們使用以下語法:
var entity = new class { constructor(name) { this.name = name; } getName() { return this.name; } }('Foo');
在幕後,這會導致為每個實例化創建一個新的建構子和一個原型物件。這意味著使用此方法建立的多個物件不會分享類別繼承或原型關係的任何好處。
此外,這種方法破壞了使用匿名類別建立單例物件的嘗試。仍然可以存取和利用建構函數來創建其他實例,從而否定預期的單例行為。
鑑於這些注意事項,強烈建議避免使用立即實例化的匿名類別。更簡單的物件文字提供了更有效率、更直接的替代方案:
var entity = { name: 'Foo', getName() { return this.name; } };
以上是何時避免立即實例化匿名類別?的詳細內容。更多資訊請關注PHP中文網其他相關文章!