javascript - JS 中的方法链

标签 javascript oop methods

这么说吧:

var method = function(number) {
  this.number = number;

  this.add = function(param) {
    this.number = this.number + param;
    return this
  }
  this.multiply = function(param) {
    this.number = this.number * param;
    return this.number
  }

}

如果我这样做:

var newMeth = new method(2);
var result = newMeth.add(2).multiply(2);
console.log(result) // Will return 8

但我主要关心的是我是否想做:

var newMeth = new method(2);
var result = newMeth.add(2);

I would like to know how it would be possible in that case that result return me "4" instead of method {number: 4, add: ƒ, multiply: ƒ}

但如果我这样做,仍然返回我 8

var result = newMeth.add(2).multiply(2);

如有任何帮助,我们将不胜感激。谢谢大家。

最佳答案

您可以在链上定义返回数字的 val() 方法,并按如下方式使用它:

var result = newMeth.add(2).multiply(2).val();
// OR
var result = newMeth.add(2).val();
// OR
var result = newMeth.val();

关于javascript - JS 中的方法链,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58692220/

相关文章:

javascript - 如何使用jquery向div添加类,其中radio具有一定的值

javascript - CORS,防止带有授权 header 的请求预检

javascript - 抽象 chrome 打包应用程序文件系统以与 node-webkit 一起使用

c++ - 具有传递引用对象的类会产生编译错误

c# - 与泛型建立关系

java - 如何从另一个类访问 void 方法?

javascript - 如何使用autoComplete.js?

php - 什么是更好的 stdClass 或(对象)数组来存储相关数据?

ios - 移动到另一个 swift 文件时 UIAlertController 不显示

javascript - Meteor:定义可用于方法的服务器功能