当前位置:  开发笔记 > 编程语言 > 正文

CoffeeScript - 手动声明变量

如何解决《CoffeeScript-手动声明变量》经验,为你挑选了1个好方法。

问题:是否可以在CoffeeScript中手动声明变量

我目前正在开始使用CoffeeScript的单元测试,而在完成一个教程时,我来到了必须使用before()after()函数的地步.虽然您可以在JavaScript中声明变量,但您无法在CoffeeScript中执行此操作.一个(但不是最佳实践)解决方案是将它们添加到窗口对象(像这样).我正在使用的代码来自http://sinonjs.org/.

这是我正在测试的代码:

describe 'Fake server', ->
  before(() -> server = sinon.fakeServer.create())
  after(() -> server.restore())

  it "calls callback with deserialized data", () ->
    callback = sinon.spy()
    getTodos(42, callback)

  # This is part of the FakeXMLHttpRequest API
  server.requests[0].respond(
    200,
    { "Content-Type": "application/json" },
    JSON.stringify([{ id: 1, text: "Provide examples", done: true }])
  )

  assert(callback.calledOnce)

编译为JavaScript,之前和之后的函数如下所示:

before(function() {
  var server;
  return server = sinon.fakeServer.create();
});
after(function() {
  return server.restore();
});

如您所见,变量服务器在before函数中声明,因此不能在错误的范围之外使用.



1> deceze..:
server = undefined  # or null, or false
before -> server = ...
after -> server.restore

虽然在Javascript中你可以做到var foo;,但在CoffeeScript中你需要指定一些东西来创建变量.但是,因为var foo;意味着foois 的值undefined,只需指定undefined创建相同的效果.

推荐阅读
李桂平2402851397
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有