我刚刚认识扩展.js https://github.com/searls/extend.js,并且想知道使用该库是否比使用本机 JavaScript 具有附加价值。让我演示一下;
With 扩展.js,我会声明一个命名空间,如下所示:
extend('some.madeup.namespace',{
foo : 'bar'
});
……如果没有它,我只需要这样做:
var some = { madeup : { namespace : { foo : 'bar' } } };
我是 KISS 原则的坚定信徒,并且我真的认为应该减少外部依赖以使事情变得更简单。因此,如果这个库所做的只是为我节省了(一次性)赋值声明,我会考虑是否值得这么麻烦。
我在这里缺少什么吗?这就是全部吗?
我怀疑这个问题的合理答案很大程度上依赖于任何第三方工具的通用答案。
当第三方工具可以帮助他们更快、更优雅地完成工作时,人们就会使用它,至少理论上是这样。但有些人,包括我自己,发现减少依赖性并从头开始实现更优雅。对我们来说,在我们的项目中加入糖分没有什么价值,因为这会贬低我们的原则。
对于其他人来说,它具有价值,因为它减少了他们必须编写的代码量,并且可能感觉稍微更加结构化。他们自己也会进行相同的抽象,因此使用经过深思熟虑和测试的库是有意义的。
它在很大程度上取决于您的个人喜好和使用情况。诚然,我没有特别讨论这个库的用法,它只有 51 行代码。阅读它提供的功能并得出自己的结论应该不会花很长时间。
据我所知,这个库只是创建命名空间层次结构并检查冲突的命名空间。大多数代码似乎都专注于创建层次结构和验证名称空间的唯一性。对我来说,这表明它被设计为在可能发生冲突的情况下的通用工具 - 假设您正在发布自己的库以供大众消费。
如果你想听听我的意见,那将是一个不会主动使用它的人。命名空间实际上是不必要的。如果您确实担心命名空间冲突,那么防止窗口上的多个命名空间冲突的所有努力听起来确实是必要的,但任何好的设计都不会如此。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)