首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >合并(合并)2 Javascript函数

合并(合并)2 Javascript函数
EN

Stack Overflow用户
提问于 2022-09-29 10:09:15
回答 2查看 51关注 0票数 -4

我是JavaScript的新手,有两个不同的函数要合并(合并):如何将这2个函数合并成1个函数?

职能1:

代码语言:javascript
复制
 function myFunction() {
   var x = document.getElementById("myTopnav");
   if (x.className === "topnav") {
   x.className += " responsive";
   } else {
   x.className = "topnav";
 }
 }

和职能2:

代码语言:javascript
复制
 function myFunction(x) {
 x.classList.toggle("change");
 }
  1. 目标:使用这两个功能作为你的主题。

有人能在这件事上帮我吗?

真的很感谢你的帮助。

EN

回答 2

Stack Overflow用户

发布于 2022-09-29 10:33:41

很难确切地知道为什么不能像编写函数那样组合这些函数。但我有个主意:

代码语言:javascript
复制
 function myFunction(element) {
   const x = element || document.getElementById("myTopnav");

   if (x.className === "topnav") {
    x.className += " responsive";
   } else {
    x.className = "topnav";
   }
   
   x.classList.toggle("change");
 }

这利用了逻辑OR。如果element参数未被定义,那么它的引用将被赋值给x,如果element参数未定义,则x将被指定为document.getElementById("myTopnav")的计算值。

我建议您养成使用constlet而不是var的习惯。

票数 1
EN

Stack Overflow用户

发布于 2022-09-29 10:30:56

代码语言:javascript
复制
 function myFunction() {
   var x = document.getElementById("myTopnav");
   if (x.className === "topnav") {
   x.className += " responsive";
   } else {
   x.className = "topnav";
 }
 }

// you must change the name of my funtion because you already use it
 function myFunction2(x) {
 x.classList.toggle("change");
 }

// then pass the parameter to function 2
$.extend(myFunction, myFunction2("test"));

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73893753

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档