1

所以,我正在努力提高我的 javascript 技能并更多地(并且正确地)使用对象,所以请耐心等待。

所以,举个例子:http: //jsfiddle.net/rootyb/mhYbw/

在这里,我对以下每一项都有一个单独的方法:

  • 加载ajax数据
  • 使用加载的 ajax 数据

显然,我必须等到加载完成才能使用数据,所以我将其作为回调进行访问。

正如我现在拥有的那样,它可以工作。不过,我不喜欢将 initData 回调直接添加到 loadData 方法中。如果我想在使用数据之前加载数据并对其进行处理怎么办?如果我在处理数据时有更多方法可以运行怎么办?IMO,以这种方式链接会很快变得不可读。

有什么更好、更模块化的方式来做到这一点?

为了学习,我更喜欢不依赖 jQuery 的东西(如果有神奇的 jQuery 方式的话)。

(另外,我确定我在这个例子中做了一些可怕的事情。请随时指出我犯的其他错误。我正在阅读 Douglas Crockford 的 Javascript - The Good Parts,甚至是一个级别的业余爱好者,这很有意义,但我还没有完全理解它)

谢谢!

4

1 回答 1

0

我没有看到很多应该不同的地方。我在这里制作了小提琴的更新版本。我改变了几点:

  • 对局部变量使用var关键字,例如self.
  • 不要将临时状态添加为对象的状态,例如ajaxData,因为您可能只使用一次。
  • 尽可能地封装:与其调用loadData对象ajaxURL,不如让对象决定它应该从哪个 URL 加载其数据。

最后一句话:不要试图满足你还没有的要求,即使它们将来可能会出现(我指的是你的“如果......怎么办?”问题)。如果您尝试,您很可能会发现您不需要该功能,或者需求与您过去的预期略有不同。如果您有新需求,您可以随时重构模型以满足它们。因此,为改变而设计,而不是为潜在的改变而设计。

于 2012-09-07T16:49:05.107 回答