[問題] ES2015的class問題

看板Ajax作者 (大嘴先生)時間10年前 (2015/10/29 10:25), 10年前編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/3 (看更多)
ES2015的class是不是無法繼承靜態的物件? 在過去我們可以這樣做: function A() { } A.prototype.someHash = { a:1, b:2 }; var a = new A(); a.someHash.a; //1 在現在,ES2015的class內似乎只能擺各種method跟static method? 要讓每一個new出來的物件都有相同的屬性只能這樣搞: class A { constructor() { this.someHash = { a:1, b:2 } } } var a = new A(); A.someHash.a; //1 但這樣做的話每個物件內部的someHash都是獨立的,佔記憶體。 var b = new A(); a.someHash.a = 2; a.someHash.a; //2 b.someHash.a; //1 如果是用babel轉譯在瀏覽器上執行,直接讀寫A.proptotype是OK的。 但在node.js裡就不行,可見這不是實際上的做法。 那麼,除了改用過去的construct function、 用object __proto__搞繼承之外(我比較喜歡new), 是否還有比較適當的做法可以在class裡弄出能繼承的靜態物件/變數? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 211.75.132.13 ※ 文章網址: https://www.ptt.cc/bbs/Ajax/M.1446085554.A.619.html ※ 編輯: mrbigmouth (211.75.132.13), 10/29/2015 10:30:36
文章代碼(AID): #1MCOEoOP (Ajax)
文章代碼(AID): #1MCOEoOP (Ajax)