node.js - nodeJS中的重载函数调用

标签 node.js

我有两个js文件add.js和testAdd.js

添加.js

module.exports = function add(x,y) {
    console.log("------Starts x+y----");
    var a = x+y;
    console.log(a);
    return a;
}

module.exports = function add(x,y,z) {
    console.log("------Starts x+y+z----");
    var a = x+y+z;
    console.log(a);
    return a;
}

testAdd.js

var add = require('./add');

add(300,100);

add(300,100,233);

我在 testAdd 中调用 add.js 中的 add 方法

发生的事情是函数调用总是转到 add(x,y,z),因为函数没有根据参数进行选择(如在 java 中)。

我是 nodeJS 的新手。有人可以帮我理解这个流程吗? 并帮助我解决这个问题。提前致谢。

连接控制台 o/p:-

enter image description here

最佳答案

JavaScript 没有函数重载。如果你想让你的函数接受一个可选的第三个参数,你可以设置一个默认值(使用最新的 Node 版本):

function add(x, y, z = 0) {
  ...
}

您可以将它与两个 (add(300, 100)) 或三个 (add(300, 100, 233)) 参数一起使用。

如果您没有足够新的 Node 版本,则必须对第三个参数进行一些手动验证:

function add(x, y, z) {
  z = Number.isFinite(z) ? z : 0;
  ...
}

关于node.js - nodeJS中的重载函数调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39264257/

相关文章:

javascript - FileSaver 下载损坏的 ZIP 文件

javascript - 如何在 Node.js 中请求图像和输出图像

javascript - CORS Angular JS

javascript - Node.js Streams - 及时安排事件而不产生背压

asp.net - 从 Node.js 将数据发布到 ASP.NET WEB API 服务

node.js - 如何在nodejs中创建推荐链接

node.js - 使用自定义过滤器从多个表中获取 Mongodb 数据

node.js - 你如何在同一个端口上运行 express 和 socket.io

ruby-on-rails - 我如何在 ReactJS 中使用嵌套表单?

javascript - Nodejs 和套接字 io 错误 : listen EADDRINUSE