使用require的新函数不返回值而是返回“add {}”

时间:2018-04-06 14:03:07

标签: javascript node.js

//add.js    
    module.exports = function add(a,b) {
    return a+b
    }
//request.js
    var request = require("add.js")
    var request1 = new request('5','5')
    console.log(request1)

此方法返回“add {}”而不是10

2 个答案:

答案 0 :(得分:5)

您无需使用new。删除它,它的工作原理:

var request = require("add.js");
var request1 = request('5','5');
console.log(request1);

我们在导出new时使用class。那时我们使用new来创建一个类的实例。

//animal.js
class Animal {

}

module.exports = Animal;

//index.js
var animal = require('animal.js');
//creates a instance of animal
var animalObj = new animal();

答案 1 :(得分:3)

您不需要new关键字。

  

new运算符创建用户定义的对象类型或的实例   其中一个具有构造函数的内置对象类型。

要实现所需的模块导入,要使用此方法,您可以执行以下操作:

// add.js
module.exports = function add(a, b) {
    return a + b;
}

// request.js
var add = require("./add.js");

add(5, 5) // 10;

重要在您的示例中,您传递了两个strings,因此结果将产生以下结果,因为+运算符将连接值。

add('5','5') // "55"