Node.js 基于JavaScript编写应用,JavaScript是我的主要开发语言。CoffeeScript是编译为JavaScript的编程语言。其实CoffeeScript语言因其可以一对一的翻译为JavaScript的特性,使用起来也非常灵活。将其引入项目的方式也有很多种,在此,我将使用coffeescript编写node.js项目的方法做一个汇总。 直接使用coffee指令运行纯coffeescript项目 一般提起coffeescript,自然而然地会想到他是javascript的小弟,总脱离不了js的阴影。其实你...
我想模拟出MarkdownDeep,下面的代码在JavaScript中MarkdownDeep = new (function () {this.Markdown = function () {this.Transform = function (a) {return "html";};}; })();但是我在CoffeeScript中实现它有困难 我尝试了以下MarkdownDeep = new (->@Markdown = ->@Transform = (a) ->"html" )() window.MarkdownDeep = MarkdownDeep但它不起作用,特别是在我的单元测试中,markdown = new MarkdownDeep.Markdown()给出“未定义不是...
在这些替代方案中,哪一种是CoffeeScript中基于类的编程的最佳样式?# Alternative 1 class Personconstructor: (@name, @age) ->new Person "Peter", 19# Alternative 2 class Personname: ""age: 0constructor: (@name, @age) ->new Person "Peter", 19# Alternative 3 class Personconstructor: (@name = "", @age = 0) ->new Person "Peter", 19# Alternative 4 class Personconstructor: (name, age) ->@name = name ? ""@age ...
我们想试验coffeescript并最终将所有js代码转换为coffee.当我们使用require.js时,我认为关于本地开发的加载部件的最简单方法是使用require.js coffeescript plugin并相应地调整模块加载,例如var myModule = require('cs!myModule');如果我的理解是正确的,那么此过程是否意味着所有.coffee文件都是即时编译的,是否冒着迅速成为性能问题的风险,因此可能会大大降低开发速度吗? 如果是这样,您有什么建议?解决方法:我猜想这是否会成为...
遗憾的是,我是Vimscript的新手,但是未能编写将.coffee文件切换为相应的.js文件的函数. 我想知道是否有人已经这样做了? 我知道vim-coffee-script插件有功能:CoffeeCompile监视,但是您看到的文件不是您存储在本地的真实文件. 具有这样的功能(如果将.coffee和.js文件存储在同一目录中)会很酷:function! GoToJS()" get current file path in a string variable" change the .coffee extention to a .js extention" open the .js fil...
CoffeeScript还不支持ES6导入. (请参见https://github.com/jashkenas/coffeescript/issues/3162) 我尝试使用链接中说明的以下语法:`import { createAction, handleAction, handleActions } from 'redux-actions'`但是Browserify会引发以下错误:Browerify { err: { [Error: Parsing file: 'import' and 'export' may only appear at the top level (2:0)]因此,我目前仍然坚持旧的传统方式:reduxActions = require 'redux-actions...
我最近开始阅读关于CoffeeScript http://jashkenas.github.com/coffee-script/的内容,看起来非常棒!但是,我似乎无法弄清楚是否有一种简单的方法来访问/使用外部JavaScript apis.我广泛使用OpenLayers所以有人可以告诉我如何使用CoffeeScript编写以下代码片段吗?var map = new OpenLayers.Map('map_div', {controls: [new OpenLayers.Control.PanZoomBar(),new OpenLayers.Control.LayerSwitcher({'ascending':false})],numZoomLe...
我正在尝试创建我的第一个Atom程序包,我感到困惑的是: Atom Documentation在CoffeeScript中提供了示例,而默认安装的Package Generator生成JavaScript代码.为什么没有统一的选择?还是其中之一已经过时?解决方法:Atom逐渐远离CofeeScript,其口头禅是“没有新的CoffeeScript代码”.内森索伯(Nathan Sobo)在ChangeLog播客第241集,题为“ The Story of Atom”中对此进行了解释. 在Atom讨论中,对该问题的最多提及往往指向this topic,尽...
这是我在CoffeeScript中使用MongoDB进行简单测试的代码.当我跑步 coffee -c UserDataProvider.coffee我在第6行出现错误UNCLOSED INDENT 这是我的代码:Db = require('mongodb/db').Db ObjectID = require('mongodb/bson/bson').ObjectID Server = require('mongodb/connection').Serverclass UserDataProviderconstructor = (host,port)->this.db = new Db( 'test' , new Server(host ,port,{}))getCollection = (callback) -...
我正在使用coffeescript ruby??-on-rails.如果咖啡代码中存在语法问题,将coffeescript编译为纯JS会导致错误.在我运行应用程序时的浏览器上,我收到此错误:ExecJS::RuntimeError 有什么办法可以找出导致编译错误的原因,当它试图将咖啡代码编译成JS时?附件是error的屏幕截图 以下是服务器日志中的条目,它无法指示实际导致语法错误的文件:ActionView::Template::Error (SyntaxError: [stdin]:25:10: unexpected :):4: <meta nam...
我有一个如下所示的数组:array = [[1, 5], [4, 7], [3, 8], [2, 3], [12, 4], [6, 6], [4, 1], [3, 2], [8, 14]]我需要的是集合中第一个值的最大数字,所以在这种情况下为12.在线查看一些示例,我看到实现这一目标的最佳方式是:Math.max.apply Math, array问题是,这仅适用于单维数组.我怎么能为我的Senario诋毁这个? (允许jquery) 最终解决方案: 这不是问题的一部分,但我需要数组中的最小值和最大值,这会改变一些事情.unless de...
参见英文答案 > Check if every element in one array is in a second array 9个在JavaScript中,如何测试一个数组是否具有另一个数组的元素?arr1 = [1, 2, 3, 4, 5] [8, 1, 10, 2, 3, 4, 5, 9].function_name(arr1) # => true解决方法:没有set函数可以做到这一点,但你可以简单地做一个ad-hoc数组交集并检查长度.[8, 1, 10, 2, 3, 4, 5, 9].filter(function (elem) {return arr1.indexOf(elem)...
我正在使用CoffeeScript以及JS splice函数.我对JS splice函数的理解是它应该返回拼接出来的对象并修改原始数组.这似乎适用于简单的数组,但是当我开始向数组添加对象时,事情就会崩溃.以下是带注释的简化案例: 并链接code#Class that will go in array class Thingdo: ->alert "Hi"a = new Thing b = new Thingarr = []arr.push(a) arr.push(b)arr[0].do() # this worksresult = arr.splice(0,1) alert result.do() # this does n...
在CoffeeScript中,似乎在实例化子类时不会调用超类构造函数. 有没有解决的办法? 这是一个例子:class Aelement = nullconstructor: ->element = document.createElement "div"hide: =>element.style.display = "none"class B extends Aconstructor: ->@hide() #error!我希望首先调用A的构造函数,然后调用B的构造函数.如果B然后调用hide方法,它应该隐藏在A的构造函数中创建的元素,而不是说该元素为null. 谢谢!解决方法:我想你需要...
在JavaScript中,您可以使用一个小技巧来使新关键字可选:function Frob(args) {if (!(this instanceof Frob)) {return new Frob(args);}// Normal initialization logic }这样,您可以使用或不使用new关键字来实例化Frob:new Frob('foo'); // a Frob instance Frob('bar'); // also a Frob instance有没有办法在CoffeeScript中使用class关键字执行此操作?解决方法:只需定义一个构造函数:class Frobconstructor: (args) ->ret...