Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JS中静态函数的继承_Javascript_Variables - Fatal编程技术网

Javascript JS中静态函数的继承

Javascript JS中静态函数的继承,javascript,variables,Javascript,Variables,假设我有四个按钮,如下所示: 单击我(按钮1)-或单击我(按钮2) 选项1(按钮3)选项2(按钮4) 如果我点击按钮1或按钮2,我希望设置一个局部变量来设置按下的按钮 当我点击按钮3或4时,我需要访问保存被点击按钮的变量并对其进行处理 我希望避免在全局范围内创建变量或使用多个变量。这可能吗 我所尝试的: function setButtonId(i) { this.id = i } setbuttonId.process = item => { console.log(item)

假设我有四个按钮,如下所示:

单击我
(按钮1)-
或单击我
(按钮2)

选项1
(按钮3)选项2(按钮4)

如果我点击按钮1或按钮2,我希望设置一个局部变量来设置按下的按钮

当我点击按钮3或4时,我需要访问保存被点击按钮的变量并对其进行处理

我希望避免在全局范围内创建变量或使用多个变量。这可能吗

我所尝试的:

function setButtonId(i) {
  this.id = i
}
setbuttonId.process = item => {
  console.log(item)
}
//tmpcode
然后将其用作:

  button1.onclick = () => logic.setId(3);
  button4.onclick = () => logic.process();
但实际上我更喜欢非全局外部范围变量:

 {
   let id = null;
   function setId(i){ id = i}
   function process() {
     console.log(id);
   }
 }
然后将其用作:

  button1.onclick = () => logic.setId(3);
  button4.onclick = () => logic.process();
但实际上我更喜欢非全局外部范围变量:

 {
   let id = null;
   function setId(i){ id = i}
   function process() {
     console.log(id);
   }
 }

如果要避免使用全局变量,则可以使用立即调用的函数表达式:

(函数(){
拉斯蒂德变种;
document.getElementById(“1”).addEventListener('click',()=>{
lastId=1;
});
document.getElementById(“2”).addEventListener('click',()=>{
lastId=2;
});
document.getElementById(“3”).addEventListener('click',()=>{
console.log(lastId)
});
document.getElementById(“4”).addEventListener('click',()=>{
console.log(lastId)
});
}())

1234
如果要避免使用全局变量,则可以使用立即调用的函数表达式:

(函数(){
拉斯蒂德变种;
document.getElementById(“1”).addEventListener('click',()=>{
lastId=1;
});
document.getElementById(“2”).addEventListener('click',()=>{
lastId=2;
});
document.getElementById(“3”).addEventListener('click',()=>{
console.log(lastId)
});
document.getElementById(“4”).addEventListener('click',()=>{
console.log(lastId)
});
}())

1234
你知道,我问问题不仅仅是为了骚扰社区,对吧?我问问题是因为我需要帮助,我无法摆脱困境。别忘了
新的
操作符。有点希望避免这种情况,但是是的,它会起作用,而不是
this.id=1
使用
return{id:1}
。你知道,我问问题不仅仅是为了骚扰社区,对吗?我问问题是因为我需要帮助,我无法摆脱困境。别忘了
新的
操作符。有点希望避免这种情况,但是是的,它会起作用,而不是
this.id=1
使用
返回{id:1}
。谢谢你的直截了当的回答。它工作得很好。谢谢你直截了当的回答。非常好,太棒了,谢谢!这样的方法,我不会想出太棒了,谢谢!这样的做法,我是不会想出的