Javascript 在函数之后运行原型函数
我正在尝试学习更多关于javascript原型的知识(我想这就是所谓的javascript原型)。我看到一些NodeJS模块的函数调用方式如下:Javascript 在函数之后运行原型函数,javascript,node.js,express,prototype,Javascript,Node.js,Express,Prototype,我正在尝试学习更多关于javascript原型的知识(我想这就是所谓的javascript原型)。我看到一些NodeJS模块的函数调用方式如下:something.funcA().funcB().funcC()我正在尝试复制它。我怎么做?它叫什么名字 这就是我迄今为止从尝试中得到的: var total = { t: 0 }; module.exports.calculate = function() { var calc = {}; calc.result = functi
something.funcA().funcB().funcC()代码>我正在尝试复制它。我怎么做?它叫什么名字
这就是我迄今为止从尝试中得到的:
var total = { t: 0 };
module.exports.calculate = function() {
var calc = {};
calc.result = function result() {
return total.t;
}
calc.add = function add(num) {
total.t += num;
return this;
}
calc.sub = function sub(num) {
total.t -= num;
return this;
}
return calc;
};
当我调用函数时:
calc = require('../helpers/calculate');
// 5 - 1 + 3 = 7
calc.calculate().add(5).sub(1);
calc.calculate().add(3);
console.log(calc.calculate().result());
运行add()
有效,但在add()
之后运行sub()
时无效:
add(5).sub(1)
对add()
返回的对象调用sub()
因为add()
不返回任何内容,所以这不起作用
您可能希望返回this
这与原型无关;它只是一个返回值的普通函数。TypeError:calc.calculate(…).add(…).sub不是一个函数,在添加后返回此值对这两个函数进行编码>。使用返回此值代码>让它为我工作。您能否将问题中的代码更新为您当前拥有的代码?我相信在这种情况下,this
将是calc
。它似乎对我来说运行良好:。OP,你确定需要正确的文件吗?我的代码中有这样一个文件:calc.add=function sub(num){
。当然不行。非常感谢你的帮助。
TypeError: Cannot read property 'sub' of undefined