Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/420.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Javascript函数中使用options对象_Javascript_Html_Function_Object - Fatal编程技术网

如何在Javascript函数中使用options对象

如何在Javascript函数中使用options对象,javascript,html,function,object,Javascript,Html,Function,Object,我试着用一些对象作为参数来获取输入 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> 当

我试着用一些对象作为参数来获取输入

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元素作为输出。

我不确定您的代码到底哪里出错了。在这里,您可以看到您生成的javascript和html都可以很好地协同工作

函数写内存{ var-str=param.str; var elem=param.elem; document.getElementByIdelem.innerHTML=str; } 写{ 元素:“op”, str:'你好' }
在我看来,您的代码按预期工作

在函数上使用选项对象的答案:

在ES6中,默认参数可以防止未定义值,但是它实际上不能补偿传递缺少参数的对象的情况

在这种情况下,我建议使用Object.assign:

Object.assign的作用是将具有默认选项的对象与提供的函数合并,从而允许您设置可以依赖的默认参数。在这种情况下,写入{}将导致选项为该对象:

{
   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;
}

. 也许不要使用字体,它已经被弃用了。不可复制是有原因的。
function write(param){
   if(!param || !param.elem || !param.str) return false;
   return document.getElementById(param.elem).innerHTML = param.str;
}