在 ES6 中,可以定義匿名類別並立即實例化它們。雖然這種語法乍看之下似乎很吸引人,但了解它的陷阱以及為什麼通常應該避免它是至關重要的。
要直接實例化匿名類,我們使用以下語法:
var entity = new class { constructor(name) { this.name = name; } getName() { return this.name; } }('Foo');
在幕後,這會導致為每個實例化創建一個新的建構子和一個原型物件。這意味著使用此方法建立的多個物件不會共享類別繼承或原型關係的任何好處。
此外,此方法破壞了使用匿名類別建立單例物件的嘗試。仍然可以存取和利用建構函數來創建其他實例,從而否定預期的單例行為。
鑑於這些注意事項,強烈建議避免使用立即實例化的匿名類別。更簡單的物件字面量提供了更有效率、更直接的替代方案:
var entity = { name: 'Foo', getName() { return this.name; } };
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3