gpt4 book ai didi

javascript - 如何在 Javascript 中将对象作为参数传递?

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:55:11 25 4
gpt4 key购买 nike

我在这里找到了几个与我的问题相关的问题,但没有得到我正在寻找的答案。我想做这样的事情,类似于 jQuery 经常做的事情:

createCSS("mystyle.css", {
media: "screen",
type: "text/css"
});

我试过这个来完成我想要的,但它不起作用:

var prop = {
media: '',
type: ''
};

function createCSS(href, prop) {
var anchor = document.createElement("link");
anchor.setAttribute("href", href);
anchor.setAttribute("media", prop.media);
anchor.setAttribute("type", prop.type);

if(typeof anchor != "undefined") {
document.getElementsByTagName("head")[0].appendChild( anchor );
}
}

现在,我知道我可以创建单个多个参数,例如 createCSS("mystyle.css", "screen", "text/css"); 但我不喜欢那样,其他方式看起来更酷。

很多 javascript 新手,所以非常感谢任何帮助!

最佳答案

您不必声明/初始化 var prop .您的函数看起来不错,只需调用它传递一个对象为 prop ,如您自己的示例:

createCSS("mystyle.css", {
media: "screen",
type: "text/css"
});

如果用意用var prop部分是为了避免分配 undefined对于属性,您需要在函数内部做一些调整:

function createCSS(href, prop) {
prop = (typeof prop !== "object") ? {} : prop;
prop.media = prop.media || 'screen'; // default media will be screen
prop.href = prop.href || 'text/css'; // default type will be text/css
// rest of code
}

我建议的一些小改进:

  • 你的变量 anchor不包含 anchor ( <a> ) 元素。为什么不叫它link
  • 你似乎不需要 if(typeof anchor != "undefined")有条件的。由于您在上面几行中创建了元素,因此该变量永远不会是未定义的。您可以跳过 ifappendChild直接。

关于javascript - 如何在 Javascript 中将对象作为参数传递?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14652421/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com