首页   注册   登录
 wm123450405 最近的时间轴更新
wm123450405

wm123450405

V2EX 第 302470 号会员,加入于 2018-03-22 15:25:41 +08:00
JavaScript 数据操作工具包
  •  2   
    分享创造  •  wm123450405  •  2018-04-02 16:39:17 PM  •  最后回复来自 wm123450405
    19
    wm123450405 最近回复了
    graphql
    60 天前
    回复了 tenstone 创建的主题 Node.js NodeJS 是否支持 AOP 特性
    我自己前端事件写了一个库 用来支持 AOP 大家可以看一看 给点意见
    https://gitee.com/wm123450405/aspects-js
    2018-04-02 16:39:17 +08:00
    回复了 wm123450405 创建的主题 分享创造 JavaScript 数据操作工具包
    回复 楼上 2 位
    首先 我的库里目前只对原生对象扩展了 asEnumerable 一个方法. 就是尽量避免冲突
    其次 库也支持 Enumerable(source)的方式获取一个和 source.asEnumerable()一样的结果, 类似 lodash 的 chain. 再使用 toArray 等方法生成最终结果.
    当然 如果大家觉得修改原生原型的做法确实不合适 我想也我会在后面的版本中修改 /删除这种方式
    2018-03-29 22:28:40 +08:00
    回复了 wm123450405 创建的主题 分享创造 JavaScript 数据操作工具包
    首先感谢各位的关注 如果大家发现有什么问题或者有什么希望加入的功能 欢迎大家在此回复 或者直接在 github/gitee 上提 issue 给我
    2018-03-29 20:45:03 +08:00
    回复了 wm123450405 创建的主题 分享创造 JavaScript 数据操作工具包
    @per 感谢你提供的信息. 我想我在编写这个库的时候并没有考虑这一层面的性能问题.
    首先你分享的文章我不是特别的明白 我理解的大概含义 一般的 js 引擎会对已有的对象的属性查找进行优化 会将属性按照某种顺序排列在内存中 并生成一个身份(shape 或 structure ID) 如果修改 prototype 的话 会打乱这种顺序 导致原本可以快速查找属性的功能失效 造成性能损失
    就你一共提出的问题 我想:
    如果说因为原型链比较深导致其查找 property 比较慢的话 我想这个应该不容易避免 因为原型链的深度是受类型的继承关系的影响
    如果是因为修改 prototype 导致 js 引擎在做优化时不能达到最佳性能的话 我目前也没有更好的解决办法
    2018-03-29 18:54:27 +08:00
    回复了 wm123450405 创建的主题 分享创造 JavaScript 数据操作工具包
    @zenxds 我的库默认只会在 Array 上注册一个 asEnumerable 方法 用来获取一个 IEnumerable 对象进行后续操作 当然也可以开启对 Array 的直接扩展 主要看你有没有用到其他有冲突的库
    2018-03-29 18:40:15 +08:00
    回复了 wm123450405 创建的主题 分享创造 JavaScript 数据操作工具包
    @crs0910 你是让我看看 mootools 这个库吗? 如果你希望的只是类似 flatMap 这样的展开一个包含数组元素的数组 在我的库里是 selectMany
    2018-03-29 18:38:15 +08:00
    回复了 wm123450405 创建的主题 分享创造 JavaScript 数据操作工具包
    @per 不好意思 不是很明白你想表达的意思 你可以举例说明下嘛 我这里只是扩展了 Array 类 用 Array.prototype 的方式
    2018-03-29 17:01:35 +08:00
    回复了 wm123450405 创建的主题 分享创造 JavaScript 数据操作工具包
    @codermagefox 可以啊 我也是造了一些轮子而已
    2018-03-29 17:01:08 +08:00
    回复了 wm123450405 创建的主题 分享创造 JavaScript 数据操作工具包
    @per 是的 在 prototype 上做了扩展的
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   4174 人在线   最高记录 5168   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 17ms · UTC 01:26 · PVG 09:26 · LAX 18:26 · JFK 21:26
    ♥ Do have faith in what you're doing.