you*_*sco 1 javascript prototypejs underscore.js
Underscore.js定义了像_.each (alias: forEach)和的函数的别名_.map (alias: collect),我不明白为什么.
我最初认为这是为了避免浏览器本身没有实现这些功能的问题,我的想法是调用[].map()会在IE7和8中引发错误,因为他们没有在本地实现它但发现自从Underscore以来没有问题定义那些.
然后我认为它可能与其他JS库(例如Prototype)的冲突有关,这些库实现了类似命名的函数但后来意识到,在_.map自原型实现的情况下,拥有别名实际上并没有区别.map,.colelct而且实际上我已经一直使用原型的实现(例如this.collection.collect(...)).
到目前为止它似乎没有任何区别,它没有产生任何问题,但我真的想知道为什么会发生这种情况.
我想别名的目的是为了使库具有不同背景的程序员更熟悉(例如,collect和include在Ruby中使用,fold在功能性语言等).
此外,例如,别名可以在某些情况下提高可读性
list.select(...).reject(...)
Run Code Online (Sandbox Code Playgroud)
"听起来"好于
list.filter(...).reject(...)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
911 次 |
| 最近记录: |