Javascript - 在使用参数之前检查参数

标签 javascript function parameters

我创建了一个弹出函数,最近更改了格式:

createPopUp('My Popup',600,200);

this method :

createPopUp({ title: 'My Popup', width: 600, height: 200 });

我只想使用存在的值,所以我目前正在这样做:

function createPopUp(config){

  if (typeof config.title != 'undefined'){
    var theTitle = title;
  } else {
    var theTitle = 'Untitled';
  }

}

然而,这看起来非常困惑,所以我一直在寻找一种更有效的方法来检查传入参数或设置默认值,如果能向正确的方向推进,我们将不胜感激。

最佳答案

您可以像这样扩展一组默认属性:

var defaults = {
    title: 'Untitled',
    width: 100,
    height: 100
}

function createPopUp(config)
{
    var opts = {}

    for (var k in defaults) {
        opts[k] = config[k] || defaults[k];
        // sometimes falsy values should be allowed to override defaults
        // in that case, use this instead:
        // opts[k] = typeof config[k] != 'undefined' ? config[k] : defaults[k]
    }

    // opts contains values from defaults where config doesn't have them
}

jQuery 有一个方便的 $.extend() 用于此目的,但您没有这样标记您的帖子。

关于Javascript - 在使用参数之前检查参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14070623/

相关文章:

javascript - 为什么requestAnimFrame需要bind(this)

javascript - 使用默认属性破坏作为函数参数的对象

swift IOS 将函数转换为自定义类

javascript - 无法使 moment().utc() 返回 2 位数的月份和年份

javascript - Ajax/JQuery : Slow down other divs below to jump-up when deleted

javascript - 如何在 VS Code 中为自定义文件扩展名启用 JavaScript IntelliSense?

php - 第 4 行警告 : mysql_result(): supplied argument is not a valid MySQL result resource in (. ..)

Javascript:图像对象的 onerror 事件有哪些参数?如何获取与图像相关的错误的更多详细信息?

java - ActionMappingParametersInteceptor - 为什么我需要它

java - 如何在 Eclipse 工具提示和自动完成功能中查看外部 Java 类的参数名称?