Javascript - 在将外部变量作为参数传递后更改函数内部的外部变量
Javascript - change outside variable inside a function after passing it as an argument
我有一个简单的函数,我希望它只执行一次。因此我创建了 status.example_1
和 status.example_2
。当函数执行时,状态应该从 false
变为 true
,但它不起作用。它作为参数 e2
传递给 myFunction
,这就是问题的原因。
有什么办法让它起作用吗?我在这里错过了什么?
(function(){
var btn1 = document.getElementById('btn-1'),
btn2 = document.getElementById('btn-2'),
status = {
example_1: false,
example_2: false,
};
function myFunction(e1,e2){
if(e2 === false){
console.log('Button: ' + e1);
e2 = true;
}
}
btn1.addEventListener('click',function(){
myFunction(1,status.example_1);
});
btn2.addEventListener('click',function(){
myFunction(2,status.example_2);
});
})();
<button id="btn-1">Click-1</button>
<button id="btn-2">Click-2</button>
你的函数应该接收整个对象以便能够修改它,因为你只传递 1 属性,它就像一个新变量,而不是:
function myFunction(e1,e2){
if(e2 === false){
console.log('Button: ' + e1);
e2 = true;
}
}
你可以试试
function myFunction(e1,status){
if(status[`example_${e1}`] === false){
console.log('Button: ' + e1);
status[`example_${e1}`] = true;
}
}
和
myFunction(2,status);
我有一个简单的函数,我希望它只执行一次。因此我创建了 status.example_1
和 status.example_2
。当函数执行时,状态应该从 false
变为 true
,但它不起作用。它作为参数 e2
传递给 myFunction
,这就是问题的原因。
有什么办法让它起作用吗?我在这里错过了什么?
(function(){
var btn1 = document.getElementById('btn-1'),
btn2 = document.getElementById('btn-2'),
status = {
example_1: false,
example_2: false,
};
function myFunction(e1,e2){
if(e2 === false){
console.log('Button: ' + e1);
e2 = true;
}
}
btn1.addEventListener('click',function(){
myFunction(1,status.example_1);
});
btn2.addEventListener('click',function(){
myFunction(2,status.example_2);
});
})();
<button id="btn-1">Click-1</button>
<button id="btn-2">Click-2</button>
你的函数应该接收整个对象以便能够修改它,因为你只传递 1 属性,它就像一个新变量,而不是:
function myFunction(e1,e2){
if(e2 === false){
console.log('Button: ' + e1);
e2 = true;
}
}
你可以试试
function myFunction(e1,status){
if(status[`example_${e1}`] === false){
console.log('Button: ' + e1);
status[`example_${e1}`] = true;
}
}
和
myFunction(2,status);