我需要一个函数,该函数可以更改传递的属性的值。您可以在下面找到一个无法正常运行的示例。如何传递属性并访问参数?预先谢谢你!
let top = {target: document.getElementById("header").style.top};
animate(top, 50);
function foo(attribute, value) {
//some code
attribute.target = value + "px";
}
答案 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";
}
}