javascript-自定义数据类型-我需要/应该了解什么
由于js是一种非常灵活的语言,我一直想知道是否有可能创建自定义数据类型。最后,我决定尝试创建一个。我说的不是简单的类,而是一些行为更像js本地人的东西。我将创建范围数据类型。数学范围,如(2.5;9]或(-Infinity;5)。还支持范围总和(2;7]u(9;27)。它允许轻松创建0.25步的迭代器,如2-8。我希望它支持常规js语法,如for…in,或基于步骤属性计算的长度属性 遗憾的是,我注意到,\u迭代器仅在ff中受支持,但仍然可以通过使其他属性不可枚举来准备迭代器 我知道: -对象。创建/定义属性javascript-自定义数据类型-我需要/应该了解什么,javascript,html,class,ecmascript-5,custom-data-type,Javascript,Html,Class,Ecmascript 5,Custom Data Type,由于js是一种非常灵活的语言,我一直想知道是否有可能创建自定义数据类型。最后,我决定尝试创建一个。我说的不是简单的类,而是一些行为更像js本地人的东西。我将创建范围数据类型。数学范围,如(2.5;9]或(-Infinity;5)。还支持范围总和(2;7]u(9;27)。它允许轻松创建0.25步的迭代器,如2-8。我希望它支持常规js语法,如for…in,或基于步骤属性计算的长度属性 遗憾的是,我注意到,\u迭代器仅在ff中受支持,但仍然可以通过使其他属性不可枚举来准备迭代器 我知道: -对象。创
-获取者/设置者
-使用严格的(以最大限度地提高性能)
-\u迭代器(实际上不受支持) 还有什么有用的吗 自动取款机。我会这样做: 我会在本地范围内创建一些隐藏变量,以便在每次更改步骤和存储范围后预计算迭代器。以使这两个变量对用户完全不可见。除步骤外,所有属性都不可枚举-这些属性将通过迭代器重新计算添加。因此,步骤2的简单范围[2;7]如下所示:
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
这是一个好主意,还是有其他更合适的方法呢?是否可以允许这个类在JavaScript(第5版)中使用像+-?这样的操作符
- 无法创建自定义语法或文字形式
- 无法重载运算符