0

我喜欢 jQuery 方法链命令(.animate().css() 等)的能力,这在后端是通过返回特殊变量“this”来实现的。

我怎样才能实现类似的链接方法而不必在我的对象中设置状态。举个例子:

that.getHospitalCoverDataStore().findBy('short_name').withValue('sam');

此方法链使用值“sam”查询数据存储“short_name”中的字段。我可以在调用第一个方法时将内部状态设置为“short_name”,然后在调用 withValue 时再次查找。不过,这对我来说似乎很麻烦,首先,如果在 findBy 之前调用 withValue ,我不能抛出错误,因为它将重用最后一个 findBy 设置。

我怎样才能更好地实现这一点?

4

3 回答 3

3

您的findBy方法应该返回一个带有withValue方法的单独对象。(也许startsWith,但没有不相关的方法)

于 2010-09-20T02:48:29.550 回答
3

您可以使该findBy方法返回一个不同的对象,该对象封装了数据存储区和字段名称,并且具有以下withValue方法:

function findBy(field) {
  return {
    dataStore: this,
    field: field,
    withValue: function(value) {
      // query the dataStore and return result
    }
  };
}
于 2010-09-20T02:51:36.550 回答
0

看起来findBy()可以用方法实现为一个单独的对象withValue(),它看起来不withValue()应该是 HospitalCoverDataStore 的方法。

于 2010-09-20T02:47:59.363 回答