当我调用带有参数的函数时,全局对象变得不可用,我想使函数更通用。
我查看了这些主题,但是没有发现类似的情况。
//这种情况下的工作
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);
}
}
};