javascript - 在 Javascript 中链接而不设置状态

标签 javascript jquery method-chaining

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

如何实现类似的链接方法,而无需在对象内设置状态。举个例子:

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

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

如何更好地实现这一点?

最佳答案

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

function findBy(field) {
  return {
    dataStore: this,
    field: field,
    withValue: function(value) {
      // query the dataStore and return result
    }
  };
}

关于javascript - 在 Javascript 中链接而不设置状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3748390/

相关文章:

c++ - 多点运算符(c++类)

javascript - 我可以用 jQuery 做一个通用的可链接过程吗?

javascript - 如何在编译/缩小过程中消除 JavaScript 中不必要的调试代码?

javascript - 为什么 String.methods 上的 .call 除了在 Firefox 中不起作用

javascript - 按每个对象具有的属性对对象数组进行排序时出现异常结果

javascript - 在 Dynamics CRM Online 中获取 HTML Web 资源的值(value)

javascript - 如何使用 jQuery 从页面中提取 javascript

javascript - 在 $.post() 中获取返回数据的数量

javascript - 选择-选择多选 - 根据第一个的 selected.count 禁用第二个选择

scala - 以不同的方式链式运作