繁体   English   中英

Javascript / Node.js:如何在函数调用中将局部变量定义为参数的一部分?

[英]Javascript/Node.js: How to define a local variable as part of arguments in a function call?

通常,我定义并调用这样的函数 - 特别是当我们使用标志时:

function cat(doMeon, doCloseEyes)
{
  if (doMeon) console.log("Meon...");
  if (doCloseEyes) console.log("Hmm, I closed my eyes..."); 
}
...
// And then call, using flags. Names are temporary, only for readability
cat(doMeon=true, doCloseEyes=true);

请注意,我们可以做“cat(true,true)”,但这会破坏可读性。

但是,这引入的问题是这两个变量现在处于全局范围。 我们不应该污染全球范围。 但我们不能这样做:

// Doesn't work...
cat(var doMeon=true, var doCloseEyes=true);

有没有一种方法可以作为最佳实践在这里使用? (注意:在外面定义这些变量并不是一个好主意。)

传递具有可读性的参数的一种方法是将包含每个参数的对象作为命名属性传递:

cat({
    doMeon: true,
    doCloseEyes: true
});

在函数内部,您可以:

function cat(_props) {
    if (_props.doMeon) console.log("Meon...");
    if (_props.doCloseEyes) console.log("Hmm, I closed my eyes..."); 
    ....
}

您可以创建两个函数:

function catDoMeon()
{
  console.log("Meon...");
}

function catDoCloseEyes()
{
  console.log("Hmm, I closed my eyes..."); 
}

catDoMeon();
catDoCloseEyes();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM