由於js是真正靈活的語言,我總是想知道是否可以創建自定義數據類型。最後我決定嘗試創建一個。我不是在談論簡單的課程,而是在談論更像js本地人的東西。我將創建範圍數據類型。數學範圍例如(2.5; 9)或(-Infinity; 5)。還支持範圍的總和(2; 7)u(9; 27)。它允許輕鬆地創建迭代器,例如2-8,步長爲0.25。倒是喜歡它支持正常的js語法如,對於...在,或length屬性calculeted基礎上步財產。javascript - 自定義數據類型 - 我需要什麼/我應該瞭解什麼
可悲的是我已經注意到,_ 迭代 _僅支持在FF,但仍它應該有可能是因爲其他的屬性不可枚舉準備迭代
我知道:
-Object.create /的DefineProperties
-getters/setter方法
次使用嚴格的(以最大限度地提高性能)
- _ 迭代 _(實際上不支持)
還有什麼可能是有用的?
Atm。我會這樣做:
我會在本地範圍內創建一些隱藏的變量,以便在每次更改步驟和存儲範圍後預先計算迭代器。使用戶完全看不見。除了步驟之外,所有屬性都不可枚舉 - 這些屬性將添加迭代器重新計算。就這麼簡單的範圍[2; 7]第2步會是什麼樣子:
local scope:
ranges:[[2;7]] // more arrays if it'd be sum
iterator:[2,4,6]
//other internal variables
not enumerable:
array: // returns copy of iterator using getter
//some other useful properties
enumerable:
0:2
1:4
2:6
這是好主意,或者有其他更合適的方式來做到這一點?是否有可能讓這個班級使用+ - 等運算符?