美好的一天。
我有这个问题:我必须提供一种将一些可选参数传递给 javascript 函数的方法,这很容易,好的。我决定让所有参数成为一个对象,因此任何需要调用该函数的人都必须提供参数的名称。但大多数时候,编辑器只是简单地使用整个参数对象调用函数,而不会省略空参数,因为参数是通过另一种方式传递到页面的(比如说在查询字符串中,但这并不重要)。
这就是我制作函数的方式:
function playAnimation(options) {
var timeOutAnimation = options.animationDuration || 15;
var backgroundColor = options.color ; // this argument will be always present, so no default.
//more code...
}
这就是调用(我使用 php 代码作为示例)
$(document).ready(function(){
var opt = {
animationDuration: '<?php echo $_GET['stopAnimationAfter'] ?>', //could be a number, or nothing.
color: 'black'
}
playAnimation(opt);
});
问题是参数被传递并且它接缝它永远不会落在默认值上。我不能改变调用函数的方式(即检查“get”参数的可用性并相应地构建函数调用,我必须找到一种方法来测试我的javascript中的参数。
有没有一种安全的方法可以做到这一点,比如 options.animationDuration === "undefined" (doens't work) 之类的?
解决方案:在调用中的每个参数周围加上'',使参数相应地是满的或空的。然后我可以测试它们。