【发布时间】:2019-04-10 12:41:10
【问题描述】:
我有一个具有命名参数的函数。
我试图从不同的事件中调用相同的函数,而不会覆盖之前分配的其他函数的值。
我已尝试将先前单击的按钮的值存储在变量中,但这不起作用。
有没有办法调用函数并一次分配一个参数而不覆盖其他参数?
function mainFun({
val1,
val2,
val3
}) {
var value1 = val1,
value2 = val2,
value3 = val3;
// console.log(value1, value2, value3);
console.log(val1, val2, val3);
}
<button onclick="mainFun({val1 : 'Caller 1'})">First Event</button>
<button onclick="mainFun({val2 : 'Caller 2'})">Second Event</button>
<button onclick="mainFun({val3 : 'Caller 3'})">Third Event</button>
正在努力实现:
在第一个事件 > 调用者 1 undefined undefined
在第二个事件上> Caller 1 Caller 2 undefined
在第三个事件上 > 来电者 1 来电者 2 来电者 3
提前致谢!
【问题讨论】:
-
你的函数实现必须有很大的不同;你必须在某处坚持这些价值观。参数实际上是函数的局部变量,因此它们是在每次函数调用时新创建的。
-
关于如何
persist这些值有类似的问题吗? @Pointy
标签: javascript function arguments parameter-passing