javascript - 函数如何适应传递不同对象作为参数的调用?

标签 javascript object variables parameters call

我对同一函数进行了多次调用,并且每次调用都会传递一个不同的选项对象。例如:

function masterStart() {
  A(optionsA);
  A(optionsC);
}

我不知道如何编写函数A()中的代码来使用每个对象传递的参数?例如,如果我只使用对象 optionsA,我将通过编写 optionsA.soundFileName 在函数 A() 中访问它们。但是,当第二次调用 A() 并从对象 optionsC 传递参数时,我该怎么办?

这是我的代码的精简版本,它还无法从 objectC 访问参数:

var optionsA = {
  soundFileName: 'audio/60.wav',
};

var optionsC = {
  soundFileName: 'audio/90.wav',
};

masterStart();

function masterStart() {
  A(optionsA);
  A(optionsC);
}

function A() {
  soundFileName = optionsA.soundFileName;
  console.log('soundFileName: ' + soundFileName)
  // This logs "audio/60.wav" twice instead of "audio/60.wav" and "audio/90.wav"

  // THE REST OF THE CODE THAT PLAYS AND LOOPS THESE SOUNDS SHOULD FOLLOW HERE
}

一个相关问题:如果同时初始化A()C(),有时只会运行一个函数,有时会执行一个函数另一个调用的参数(根据我的经验),因为 javascript 是单线程的。有没有比延迟初始化一个更好的解决方案来使它们准确执行(我在这段代码中没有这样做)?

最佳答案

你可以做这样的事情

function A(params) {
  soundFileName = params.soundFileName
  // and the rest
}

或者像这样

function A({soundFileName}) {
  console.log(soundFileName)
  //...
}

编辑:片段

const optionsA = {
  soundFileName: 'audio/60.wav',
}

const optionsC = {
  soundFileName: 'audio/90.wav',
}

function A(params) {
  console.log("soundFileName: " + params.soundFileName)
}

A(optionsA)
A(optionsC)

关于javascript - 函数如何适应传递不同对象作为参数的调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55252559/

相关文章:

javascript - 页面上任何复选框更改的功能

javascript - 映射键以发出函数

variables - Roblox Lua : I can't do arithmetic in the middle of print()

python - 在 python 中使用带有可变字符串的条件

node.js - 如何在Jade模板引擎中正确输出变量?

javascript - 如何在悬停时停止图像闪烁

javascript - 数组 拼接 Pop 移位读取

javascript - 我如何使用 jQuery 的 each() 来实现我的字符数和文本区域切换,每个部分都有自己的表单元素?

javascript - JS : Get IDs of objects in specific order

javascript - 使用带有下拉列表的事件监听器按属性对对象数组进行排序