javascript - 我怎样才能改变这个缩小的 if 语句?

标签 javascript ckeditor minify

我正在使用的库中有一个缩小的 if 语句,我想在这里进行更改:

if (c = a.instances[c["data-cke-widget-id"]])
    d = b.getFirst(g.isParserWidgetElement),
    f.push({
        wrapper: b,
        element: d,
        widget: c,
        editables: {}
    }),
    "1" != d.attributes["data-cke-widget-keep-attr"] && delete d.attributes["data-widget"]

最后一行抛出错误,因为 d 有时可以为 null。在继续之前,我试图将其包装在一个检查中以查看 d 是否存在。到目前为止我一直没有成功,因为这个代码块不像普通的 if 语句,它在 if 之后缺少括号并且在行之后没有分号。有没有办法将这里的最后一行封装在另一个 if 语句中?

最佳答案

当前的代码,翻译得更理智一点,看起来像这样:

if (c = a.instances[c["data-cke-widget-id"]]){
  d = b.getFirst(g.isParserWidgetElement);
  f.push({
    wrapper: b,
    element: d,
    widget: c,
    editables: {}
  });
  if ("1" != d.attributes["data-cke-widget-keep-attr"]) {
    delete d.attributes["data-widget"];
  }
}

如果最后几行有时因为 d 而抛出错误,只需在访问 d.attributes 之前添加一个空检查:

if (c = a.instances[c["data-cke-widget-id"]]){
  d = b.getFirst(g.isParserWidgetElement);
  f.push({
    wrapper: b,
    element: d,
    widget: c,
    editables: {}
  });
  if (d !== null && "1" != d.attributes["data-cke-widget-keep-attr"]) {
    delete d.attributes["data-widget"];
  }
}

但您真的不应该尝试更改缩小的代码 - 您应该更改代码,然后将其推送到构建过程并自动缩小。

关于javascript - 我怎样才能改变这个缩小的 if 语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50125299/

相关文章:

javascript - 使用 javascript onClick 播放 mp3 文件

ckeditor - Ckeditor插件-验证文本字段

ckeditor - 如何删除 CKEDITOR 对话框中默认的 onCancel 确认提示?

javascript - 如何安装CKeditor

javascript - 代码开头的分号仍然是好习惯吗?

javascript - ASP.NET bundle 和缩小并从其他 Web 应用程序使用它

javascript - 禁用 Bootstrap 日期时间选择器中的 future 日期

javascript - 如何使用命令中参数的长度来创建命令?

javascript - Gulp 缩小后的 js 抛出错误

javascript - Nodejs - 如果路径/api - 服务 api,如果不是 - 服务静态文件