首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >javascript -自定义数据类型-我需要什么/我应该了解什么

javascript -自定义数据类型-我需要什么/我应该了解什么
EN

Stack Overflow用户
提问于 2013-12-19 01:55:42
回答 1查看 468关注 0票数 0

由于js是一种非常灵活的语言,我一直想知道是否可以创建自定义数据类型。最后,我决定尝试创建一个。我说的不是简单的类,而是会表现得更像js本地人的东西。我要创建范围数据类型。数学范围为(2.5;9)或(-Infinity;5)。也支持幅度(2;7)u (9;27)。它允许轻松创建迭代器(如2-8 ),只需0.25步。我希望它能支持常规的js语法。为了..。基于step属性调用的in或length属性。

遗憾的是,我注意到_iterator_只支持ff,但仍然可以通过使其他属性不可枚举来准备迭代器。

我知道:

-Object.create/defineProperties

-getter/setters

-use严格(最大限度地提高性能)

-_iterator_ (实际上不支持)

还有其他有用的东西吗?

自动取款机。我会这样做的:

我会在本地范围内创建一些隐藏的vars,以便在步骤和存储范围每次更改后预先计算迭代器。使用户完全看不见两者。除了步骤之外,所有属性都不是可枚举的--这些属性将与迭代器重新计算一起添加。因此,步骤2的简单范围2;7如下所示:

代码语言:javascript
复制
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

这是个好主意,还是有其他更合适的方法?是否可以允许该类使用像+-这样的运算符?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-12-19 02:16:27

JavaScript (编辑)5),一

  • 无法创建自定义语法、语法或文字形式;
  • 不能过载操作符

但是,已经创建了许多“自定义数据类型”;可以随意创建另一个类型。例如,jQuery (操纵DOM元素的序列)、moment.js (日期替换)和big.js (带有操作的“大数字”类型)都是“自定义数据类型”--尽管方法替代了操作符。

否则,不太确定问题的其余部分将走向何方。除了关闭。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20672093

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档