如何通过JavaScript传递引用?

时间:2019-05-10 21:50:46

标签: javascript

我需要一个函数,该函数可以更改传递的属性的值。您可以在下面找到一个无法正常运行的示例。如何传递属性并访问参数?预先谢谢你!

let top = {target: document.getElementById("header").style.top};

animate(top, 50);



function foo(attribute, value) {

        //some code

        attribute.target = value + "px";

}

2 个答案:

答案 0 :(得分:1)

为什么不直接将元素作为参数传递?

let header = document.getElementById("header");

foo(header, 'top', 50);

function foo(element, attribute, value) {
  //some code

  element.style[attribute] = value + "px";
}

我已经编写了代码,但是你明白了吧?

希望有帮助。

答案 1 :(得分:0)

您不能将引用传递给诸如字符串,数字和布尔值之类的基元。不过,您可以将引用传递给对象,例如DOM元素:

let [top, attr, subAttr] = [document.getElementById("header"), "style", "top"];

foo(top, 50, attr, subAttr);

function foo(element, value, attr, subAttr) {
    if (subAttr) {
        element[attr][subAttr] = value+"px";
    else {
        element[attr] = value+"px";
    }
}