簡體   English   中英

關閉ES2015(ES6)類中的類構造函數

[英]Closure around class constructor in ES2015 (ES6) classes

可以圍繞構造函數創建一個閉包,以保存實例的唯一ID:

const MyObject = (() => {
  let id = 0;

  return function() {
    this.id = id++;
  };
})();

使用類語法如何實現相同的目的? 有沒有一種方法可以創建圍繞類的constructor函數的閉包?

是的,使用類表達式可以執行以下操作:

 const MyObject = (() => { let id = 0; return class MyObject { constructor() { this.id = id++; } }; })(); console.log(new MyObject().id); console.log(new MyObject().id); console.log(new MyObject().id); 


或者,您也可以使用常規的類聲明來做到這一點。

 const MyObject = (() => { let id = 0; class MyObject { constructor() { this.id = id++; } } return MyObject; })(); console.log(new MyObject().id); console.log(new MyObject().id); console.log(new MyObject().id); 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM