我刚认识extend.js,并想知道使用本机库而不是使用本机JavaScript是否有附加价值。让我演示一下;
使用 extend.js ,我会声明一个名称空间:
extend('some.madeup.namespace',{
foo : 'bar'
});
......如果没有它,我只需要这样做:
var some = { madeup : { namespace : { foo : 'bar' } } };
我坚信KISS原则,并且我认为应该减少外部依赖性以使事情变得更简单。所以,如果所有这些库都保存了(一次性)赋值声明,我会思考它是否值得给它带来麻烦。
这里有什么我想念的,这就是它的全部吗?
答案 0 :(得分:1)
我怀疑这个问题的合理答案很大程度上依赖于任何第三方工具的通用答案。
人们使用第三方工具帮助他们更快,更优雅地完成工作,至少这是理论。但是有些人,包括我自己,发现减少依赖关系并从头开始实现它更优雅。对我们来说,在我们的项目中包含糖几乎没有价值,因为这会贬低我们的原则。
对于其他人而言,它具有价值,因为它减少了他们必须编写的代码量,并且可能感觉稍微有点结构化。他们本身也会做出相同的抽象,因此使用经过深思熟虑和测试的库是有意义的。
它严重影响您的个人喜好和用法。不可否认,我没有特别解决这个库的用法,它只有51行代码。阅读它提供的功能并得出自己的结论不应该花很长时间。
据我所知,这个库只创建命名空间层次结构并检查冲突的命名空间。大多数代码似乎都专注于创建层次结构和验证名称空间清晰度。这可以告诉我,在可能发生冲突的情况下,它被设计为通用工具 - 比如说你要发布自己的图书馆进行大规模的消费。
如果你想要我的意见,那就是来自一个不会选择使用它的人。命名空间实际上是不必要的。如果你真的担心冲突的命名空间,那么在窗口上防止多个命名空间冲突的所有努力听起来都是必要的,但任何好的设计都不会是。