我对同一函数进行了多次调用,并且每次调用都会传递一个不同的选项对象。例如:
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/