在下一个函数中使用来自选项的变量

Using variable from option in the next function

我尝试通过从选项中获取值来解决问题。 当我从 select 中选择一个数字时,该数字在 p 标记中正确打印并且 let index 也正确,但我想在此程序的下一个函数中使用 'const n' 。只是为了测试我创建函数 send() 来检查,我可以使用这个变量但所有时间 console.log 都是 NaN。我该如何解决?

<p id="p">Your number is: 0</p>

<select id="select">
  <option>1</option>
  <option>2</option>
  <option>3</option>
  <option>4</option>
  <option>5</option>
</select>

<button onclick="send();">SEND</button>


//JS
var selectElem = document.getElementById('select')
    var pElem = document.getElementById('p')


const n = selectElem.addEventListener('change', function() {
  let index = selectElem.value;

  pElem.innerHTML = 'Your number is: ' + index;
  return index;

})

console.log(n);
const a  = n*2;
function send(){
  console.log('-----');
  console.log(n);
  console.log(a);
}

嗯,第二个参数(函数)是一个回调。 另外,您可以使用 window 来获取所需的对象

var a=10
function send(){
 console.log('-----');
 console.log(window.n);
 console.log(window.a);
}

此外,JS 是基于原型的语言。所以,我怀疑它与 classes 有什么关系。 (在句法上,是的,也许)

你可以创建一个函数集并调用它来更新object.n..见我的例子

//JS
var selectElem = document.getElementById('select')
    var pElem = document.getElementById('p')

  var obj ={
    n:'weqwe'
    }
   function setN(n){ 
     obj.n =n
  }
 selectElem.addEventListener('change', function(obj) {
  let index = selectElem.value;

  setN( selectElem.value);
  pElem.innerHTML = 'Your number is: ' + index;
  return index;

})
     
  function send(){
    
    console.log(obj.n)
  }

  
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>JS Bin</title>
</head>
<body>
<p id="p">Your number is: 0</p>

<select id="select">
  <option>1</option>
  <option>2</option>
  <option>3</option>
  <option>4</option>
  <option>5</option>
</select>

<button onclick="send();">SEND</button>

</body>
</html>