我正在尝试将输入作为一些参数的参数,
function write(param) {
var str = param.str;
var elem = param.elem;
document.getElementById(elem).innerHTML= str;
}
我将此作为参数传递,
write({
elem:"op",
str:"Hello"
});
我要做的就是我的字体标记为id'op',
<font id="op"></font>
当我运行它时,我不打印 Hello ,因为我已将 Hello 作为 op 元素的对象参数用于输出。< / p>
答案 0 :(得分:1)
我不确定您的代码到底出了什么问题。在这里你可以看到你生成的javascript和html应该可以很好地协同工作。
function write(param) {
var str = param.str;
var elem = param.elem;
document.getElementById(elem).innerHTML = str;
}
write({
elem: 'op',
str: 'Hello'
})
&#13;
<font id="op"></font>
&#13;
答案 1 :(得分:0)
就我所见,您的代码按预期工作。
在功能上使用选项对象的答案:
在ES6中,默认参数可以防止值未定义,但它实际上并不能补偿您传递缺少参数的对象的情况。
在这种情况下,我建议使用Object.assign()
:
function write(options){
options = Object.assign({}, {
myDefaultParam: 'Hello',
elem: null,
str: ''
}, options);
if(options.elem) document.getElementById(options.elem).innerHTML = options.str;
}
Object.assign()
做的是将默认选项的对象与提供的函数合并,允许您设置可依赖的默认参数。在这种情况下,write({})
将导致选项成为此对象:
{
myDefaultParam: 'Hello',
elem: null,
str: ''
}
如果这对您来说太过分了,我建议您只需检查您的param
对象上的键是否定义为:
function write(param){
if(!param || !param.elem || !param.str) return false;
return document.getElementById(param.elem).innerHTML = param.str;
}