如何确保控制台对象在coffeescript中作为窗口对象的属性存在

时间:2013-06-26 09:39:05

标签: javascript browser coffeescript

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

window.console = window.console ? {}

coffee script transpiler生成如下代码

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

我不认为上面的代码是对的。如果我直接编写javascript,它将是这样的:

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

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

如何在coffeescript中正确执行?

2 个答案:

答案 0 :(得分:2)

使用存在性运算符?=代替?

window.console ?= {}

compiles

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

答案 1 :(得分:0)

You can use backticks to execute Javascript in coffeescript

`window.console = window.console || {}`