Javascript 什么';通过一系列对象方法处理ajax成功回调的干净方法是什么?

Javascript 什么';通过一系列对象方法处理ajax成功回调的干净方法是什么?,javascript,ajax,methods,Javascript,Ajax,Methods,所以,我正在努力提高我的javascript技能,并更多地(正确地)使用对象,所以请在这里耐心听我说 那么,就拿这个例子来说: 在这里,我对以下每一项都有一个单独的方法: 加载ajax数据 使用加载的ajax数据 显然,在使用数据之前,我必须等待加载完成,因此我将以回调的方式访问它 正如我现在所拥有的,它是有效的。不过,我不喜欢将initData回调直接添加到loadData方法中。如果我想在使用数据之前加载数据并对其进行处理,该怎么办?如果我在处理数据时有更多的方法要运行呢?依我看,用这种

所以,我正在努力提高我的javascript技能,并更多地(正确地)使用对象,所以请在这里耐心听我说

那么,就拿这个例子来说:

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

  • 加载ajax数据
  • 使用加载的ajax数据
显然,在使用数据之前,我必须等待加载完成,因此我将以回调的方式访问它

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

有什么更好、更模块化的方法可以做到这一点

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

(另外,我确信我在这个例子中做了一些可怕的事情。请随意指出我犯的其他错误。我正在阅读道格拉斯·克罗克福德的Javascript——好的部分,即使对于一个业余爱好者来说,这也是很有意义的,但我仍然没有完全理解)


谢谢

我看不出有什么不同。我制作了小提琴的更新版本。 但我改变了几点:

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

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

谢谢!我认为我主要关心的是“假设”问题是如何理解和编写可适当重用的代码。考虑到这个项目,这些情况不太可能出现,但我想知道如何处理它们,以防它们出现。很好的ajaxData通话。不知道我为什么要保存它(当然,小提琴只是我正在进行的一个更大项目的一个粗略例子)。无论如何,再次谢谢你!当出现这样的新情况时,一旦你了解了新情况,你就会很容易找到解决方案,因为问题更具体。因此,在国际海事组织看来,试图解决一个尚未成为问题的问题是徒劳的。正如您所指出的,您所能做的最好的事情就是编写可重用代码——不管是什么。对我来说,可重用代码源于使用过去被证明会导致可重用代码的概念:OOP、封装、单元测试、契约式设计、依赖项注入等等。。。