wm123450405 最近的时间轴更新
wm123450405

wm123450405

V2EX 第 302470 号会员,加入于 2018-03-22 15:25:41 +08:00
wm123450405 最近回复了
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 上做了扩展的
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   967 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 13ms · UTC 19:12 · PVG 03:12 · LAX 11:12 · JFK 14:12
Developed with CodeLauncher
♥ Do have faith in what you're doing.