[問題] js 中「巢狀物件」的建立
一個新手問題:
由於我要紀錄某幾段資料的 max, min ,而這兩個又要紀錄各自的 index, value
所以我想利用物件精簡程式碼
其基礎想法大概是這樣:
// ------------------
var iv = { i=0, v=[] } ;
var mm = {max=iv, min=iv} ;
var data1 = mm ;
var data2 = mm ;
// ------------------
不過這想法我知道是不行的.....
其中一個問題是資料空間(是稱為「實例」?)為同一個。
下面是我測試可行的程式:
// ------------------
var iv = function () {
this.i = 1;
this.v = [];
};
var mm = function () {
this.min = new iv() ;
this.max = new iv() ;
};
var data1 = new mm();
var data2 = new mm();
// ------------------
請問有沒有辦法更簡單呢?
畢竟我不需要建構式進行初始化運算,僅僅賦值而已。
我看到有 Object.create() ,似乎可以直接產生新實例,但沒試成功。
不知哪裡有誤?(程式如下)
// ------------------
var iv = {i: 1 , v: []};
var mm = {max: Object.create(iv), min:Object.create(iv)};
var data1 = Object.create(mm)
var data2 = Object.create(mm)
// ------------------
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.162.137.26
※ 文章網址: https://www.ptt.cc/bbs/Web_Design/M.1505656595.A.106.html
※ 編輯: sppmg (1.162.137.26), 09/17/2017 21:59:11
推
09/18 00:06, , 1F
09/18 00:06, 1F
原來是透過 JSON 字串轉換完成。不過有點繞路的感覺。
推
09/18 00:14, , 2F
09/18 00:14, 2F
這方法不錯,但直接回傳一個做好的完整物件.... 有點作弊的感覺 XD
我是說不夠動態啦!
想說如果要以後如果遇到要重複利用的情況,這樣好像不太好。
感謝各位的解答,雖然還是想知道直接從物件建立的方法。
※ 編輯: sppmg (1.162.137.26), 09/18/2017 10:22:20
推
09/18 11:17, , 3F
09/18 11:17, 3F
→
09/18 11:23, , 4F
09/18 11:23, 4F
→
09/18 11:23, , 5F
09/18 11:23, 5F
推
09/18 12:30, , 6F
09/18 12:30, 6F
推
09/18 16:24, , 7F
09/18 16:24, 7F
哦!這好。(我可以貼上來當紀錄嗎?)
我當初其實有試過箭頭函數取代 function。但當時用錯 () => {{...}}
還覺得奇怪。
謝謝各位了。
※ 編輯: sppmg (1.162.137.26), 09/18/2017 20:33:00
推
09/19 18:09, , 8F
09/19 18:09, 8F
→
09/19 18:09, , 9F
09/19 18:09, 9F
→
09/19 18:10, , 10F
09/19 18:10, 10F
→
09/19 18:10, , 11F
09/19 18:10, 11F
推
09/27 00:03, , 12F
09/27 00:03, 12F
Web_Design 近期熱門文章
PTT數位生活區 即時熱門文章