0

我使用下面的咖啡代码来检查并确保控制台对象在窗口对象下的存在,以降低 IE 浏览器的兼容性。

window.console = window.console ? {}

咖啡脚本转译器生成如下代码

window.console = (_ref = window.console ) != null ? _ref : {};

我不认为上面的代码是正确的。如果我直接写javascript,会是这样的:

if(window.console) window.console = {};

或者

if (typeof console === "undefined" || console === null) {
  console = {};
}

如何在咖啡脚本中正确地做到这一点?

4

2 回答 2

2

使用存在运算符?=而不是?

window.console ?= {}

编译

if (window.console == null) {
    window.console = {};
}
于 2013-06-26T09:48:16.373 回答
0

您可以使用反引号在 coffeescript 中执行 Javascript

`window.console = window.console || {}`
于 2013-06-26T09:42:04.743 回答