使用参数调用函数时,全局对象不可用

时间:2019-06-18 11:30:59

标签: javascript function global-variables

当我调用带有参数的函数时,全局对象变得不可用,我想使函数更通用。

我查看了这些主题,但是没有发现类似的情况。

//这种情况下的工作

let objList;
function render() {
  fetch('')
    .then(response => response.json())
    .then(data => { objList = data; })
    .catch(error => console.error(error))
};

const updButton = document.getElementById('updateButton');
const updateList = document.getElementById('updateList');

updButton.addEventListener('click', loadObject); 

function loadObject() {

  collapseForm.classList = "collapse";
  for (let i = 0; i < objList.length; i++) {
    const opt = document.createElement("option");
    opt.value = objList[i].id;
    opt.innerHTML = objList[i].username;
    if (updateList.options[i + 1] == undefined) {
      updateList.appendChild(opt);
    } else if (updateList.options[i + 1].value != objList[i].id) {
      updateList.appendChild(opt);
    }
  }
};

//这种情况下不起作用

let objList;
function render() {
  fetch('')
    .then(response => response.json())
    .then(data => { objList = data; })
    .catch(error => console.error(error))
};

const updButton = document.getElementById('updateButton');

const updateList = document.getElementById('updateList');
updButton.addEventListener('click', loadObject(updateList); 

function loadObject(select) {

  collapseForm.classList = "collapse";
  for (let i = 0; i < objList.length; i++) {
    const opt = document.createElement("option");
    opt.value = objList[i].id;
    opt.innerHTML = objList[i].username;
    if (select.options[i + 1] == undefined) {
      select.appendChild(opt);
    } else if (select.options[i + 1].value != objList[i].id) {
      select.appendChild(opt);
    }
  }
};

0 个答案:

没有答案