首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >是否可以在不使用JavaScript中的所有代码的情况下调用函数?

是否可以在不使用JavaScript中的所有代码的情况下调用函数?
EN

Stack Overflow用户
提问于 2021-04-09 04:32:02
回答 2查看 57关注 0票数 0

假设我有一个JS函数,它返回一个值,但其中包含一个alert命令。我想稍后在代码中将返回值赋给一个变量。有没有一种方法可以调用函数而忽略alert命令,以便稍后将返回值分配给变量?例如:假设我有function f1(num) { alert ("hi); return num * 2; }

然后是function f2() { var x = f1(2); return x;}。如何在以后的函数中忽略alert,只将返回值保存在变量中?

EN

回答 2

Stack Overflow用户

发布于 2021-04-09 04:44:49

f1()添加一个附加参数以跳过alert

代码语言:javascript
运行
复制
function f1(num, skipAlert) {
  if (skipAlert !== true) alert("hi");
  return num * 2;
}

function f2() {
  var x = f1(2);
  return x;
}

function f2_skipAlert() {
  var x = f1(2, true);
  return x
}

document.querySelector('button#alert').addEventListener('click', function () {
  console.log(f2());
});

document.querySelector('button#skip-alert').addEventListener('click', function () {
  console.log(f2_skipAlert());
});
代码语言:javascript
运行
复制
<button id="alert">Run with alert</button>
<button id="skip-alert">Run without alert</button>

票数 1
EN

Stack Overflow用户

发布于 2021-04-09 04:38:15

无法更改f1函数时的解决方案

您可以使用以下命令禁用它。请记住在执行包含alert函数的禁用函数之前定义禁用函数。

代码语言:javascript
运行
复制
window.alert = function() {};

如果您需要重新启用它,您可以将其临时关联到另一个变量:

代码语言:javascript
运行
复制
var oldalert = window.alert;

然后像我之前那样禁用它,然后使用window.alert = oldalert;重新启用它

正如esqew所说,覆盖它不是一种好的做法

使用的示例

代码语言:javascript
运行
复制
function disableAlert(){
  window.oldalert = window.alert;
  window.alert = function() {};
}

function enableAlert(){
  window.alert = window.oldalert;
}

然后,在你的f2函数中,你可以这样做:

代码语言:javascript
运行
复制
function f2() {
  disableAlert(); 
  var x = f1(2);
  enableAlert(); 
  return x;
}

如果您可以更改f1函数,则解决方案

类似于esqew解决方案,但使用默认参数

代码语言:javascript
运行
复制
function f1(num, skipAlert = false) {
  if (skipAlert) alert("hi");
  return num * 2;
}

function f2(skipAlert = false) {
  var x = f1(2, skipAlert);
  return x
}

如果你想用alert调用,你可以使用f2(true),否则就用f2()

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

https://stackoverflow.com/questions/67011475

复制
相关文章

相似问题

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