I'm在一些函数周围传递一个元素;这个“;关键字和“;呼叫“;方法

I'm passing around some functions an element using the "this" keyword and the "call" method

本文关键字:这个 元素 一个 关键字 方法 呼叫 周围传 函数      更新时间:2023-09-26

我要做的是将一个确定的元素传递给一个函数,我试图用"this"关键字表示该元素。问题是它必须跨越两个函数,我不明白错误在哪里。一切都从第三个函数开始,然后调用传递文档的第二个函数。body将被视为函数的"this"。然后第二个函数用"call"方法将"this"传递给第一个函数。

function create_tag(tag, inner) {
    element = document.createElement(tag);
    if (inner) {
        element.innerHTML = inner;
    }
    this.appendChild(element);
    return element;
}
function create_input(label_value) {
    input = create_tag.call(this, "input");
    label = create_tag.call(this, "label", label_value);
    input.setAttribute("id", "pers_" + label_value);
    return input;
}
function crea_personaggio() {
    input_values = ["Name", "Lastname", "Nickname", "Age"];
    for (i = 0; i < input_values.length; i++) {
        create_input.call("document.body", input_values[i]);
    }
}

.call()需要一个对象作为第一个参数传入,而您传入的是一个字符串,这在这里显然不适用(但在技术上可以)。

只需选择

create_input.call(document.body, input_values[i]);

除此之外,您还将为任何变量声明提交var关键字,这些变量声明将最终成为一组全局变量(这在这里可能不是问题,但这是非常糟糕的因果报应)。