[英]Node JS Module, How can I use local function in module
我想知道如何在模塊中訪問局部函數。
在calc模塊中:
var calc = {};
calc.add = function(a,b){
return a+b;
};
calc.multi = function(a,b){
return a*b;
};
module.exports = calc;
但是,如果我添加一些功能,請使用如下所示的局部功能:
calc.verify = function(a,b){
return (this.add(a,b)) + (this.multi(a,b))
};
這不能正常工作。 我想隨時在模塊中同時使用calc.add和calc.multi函數。
我的代碼有什么問題?
編輯::
var calc = {};
calc.add = function(a,b){
return a+b;
};
calc.multi = function(a,b){
return a*b;
};
calc.verify = function(a,b){
return (this.add(a,b)) + (this.multi(a,b))
};
module.exports = calc;
這取決於您如何調用verify()
。
假設您的模塊名為calc.js
,這應該可以工作:
const calc = require('./calc');
console.log(calc.verify(1,2));
這不起作用:
const calc = require('./calc');
const verify = calc.verify;
console.log(verify(1,2));
也沒有:
const { verify } = require('./calc')
console.log(verify(1, 2));
原因是,如果將verify()
作為未綁定函數調用, this
它將變得不確定。 如果出於某種原因您想將verify()
調用為未綁定函數,則可以使用bind()
:
const calc = require('./calc');
const verify = calc.verify.bind(calc);
console.log(verify(1,2));
其他方法是不使用this
來重寫calc.js
模塊:
calc.verify = function(a,b){
return (calc.add(a,b)) + (calc.multi(a,b))
};
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.