2

我刚刚熟悉了extend.js,并且想知道使用该库是否比使用原生 JavaScript 更有价值。让我演示一下;

使用extend.js,我会像这样声明一个命名空间:

extend('some.madeup.namespace',{
   foo : 'bar'
});

......而没有它,我只需要这样做:

var some = { madeup : { namespace : { foo : 'bar' } } };

我坚信 KISS 原则,我真的认为应该减少外部依赖,让事情变得更简单一些。所以,如果这个库所做的只是为我保存(一次性)赋值声明,我会考虑是否值得麻烦。

有什么我在这里想念的吗,这就是全部吗?

4

1 回答 1

1

我怀疑这个问题的明智答案很大程度上依赖于任何第三方工具的通用答案。

当第三方工具帮助他们更快、更优雅地完成工作时,人们会使用第三方工具,至少理论上是这样。但是有些人,包括我自己,发现减少依赖并从头开始实现更优雅。对我们来说,在我们的项目中加入糖几乎没有什么价值,因为这会贬低我们的原则。

对于其他人来说,它具有价值,因为它减少了他们必须编写的代码量,并且可能感觉更有条理。他们自己也会做同样的抽象,所以使用一个经过深思熟虑和测试的库是有意义的。

它在很大程度上取决于您的个人喜好和使用情况。诚然,我没有特别提到这个库的使用,它只有 51 行代码。阅读它提供的功能并得出自己的结论应该不会花很长时间。

据我所知,这个库只是创建命名空间层次结构并检查冲突的命名空间。大多数代码似乎都集中在创建层次结构和验证命名空间的独特性。这向我表明它被设计为在可能发生冲突的情况下的通用工具 - 比如说您正在发布自己的库以供大众消费。

但是,如果您需要我的意见,那将来自一个不会选择使用它的人。命名空间实际上是不必要的。如果您确实担心名称空间冲突,那么所有防止窗口上的多个名称空间冲突的努力听起来确实很有必要,但任何好的设计都不会。

于 2012-04-06T22:14:17.860 回答