V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  wm123450405  ›  全部回复第 1 页 / 共 1 页
回复总数  11
graphql
2020-05-13 13:58:14 +08:00
回复了 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 上做了扩展的
2018-03-29 15:54:33 +08:00
回复了 wm123450405 创建的主题 分享创造 JavaScript 数据操作工具包
一开始,在 ES5 的时代,我觉得 js 对数组的操作实在太繁琐了. 可能正是这种繁琐才有了像 underscore 这样优秀的 js 库的出现.

我本不是做前端出身的,我觉得其他语言对于数组或列表的操作要比 js 好用很多,提供了大量的方法和功能. 于是最早参考的 C#中的功能实现了一些方法.

后来,ES6 发布并普及开来,js 原生数组也增加了很多好用的功能,但是这还远远不够.

于是我又翻出了我的代码用 ES6 重写.这一次我又借鉴了另外一些语言中的部分特性,比如 php.我想我后面可能再会添加一些其他语言类似的功能,比如 Java 等.

后来我在 stackoverflow 中看到很多人对于树形结构的操作提了很多的问题,我像我的工具包应该要可以为他们提供帮助.于是在最新的几个版本中我加入了对树形结构的一些操作.

我想现在这个工具包应该算比较稳定了. 所以我发上来希望和大家交流交流. 也希望能学到更多的东西.
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2657 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 13ms · UTC 09:38 · PVG 17:38 · LAX 01:38 · JFK 04:38
Developed with CodeLauncher
♥ Do have faith in what you're doing.