【问题标题】:Coffeescript in Jsfiddle Uncaught SyntaxErrorJsfiddle Uncaught SyntaxError 中的 Coffeescript
【发布时间】:2015-11-05 04:17:45
【问题描述】:

我在使用主干、下划线和咖啡脚本的 jsfiddle 中遇到以下错误:http://jsfiddle.net/bx7g7d2y/3/

看来我的代码没问题,coffeescript 文件第 8 行出现错误。

这是我的演示代码:

# extending a simple model
SidebarModel = Backbone.Model.extend {
    initialize: -> {
        console.log 'initialized'
    }
}

sidebar = new SidebarModel

你能找出我遗漏的东西吗?

更新: 另一方面,它可以与 javascript 一起工作:

// extending a simple model
var SidebarModel = Backbone.Model.extend ({
    initialize: function(){
        console.log('initialized');
    }
})

var sidebar = new SidebarModel();

【问题讨论】:

    标签: backbone.js coffeescript jsfiddle


    【解决方案1】:

    CoffeScript 网站上的Try CoffeScript-选项卡中尝试以下操作。

    SidebarModel = Backbone.Model.extend {
        initialize: -> 
            console.log 'initialized'
    }
    
    sidebar = new SidebarModel
    

    -> 是函数的CoffeScript-literal。不需要括号!

    你甚至可以更进一步写:

    SidebarModel = Backbone.Model.extend 
        initialize: -> 
            console.log 'initialized'
    
    sidebar = new SidebarModel
    

    【讨论】:

    • 它起作用了,现在我的问题是:为什么?不应该我可以在大括号中嵌入函数体吗?
    • @alexserver 更新了答案:)
    • @alexserver 不,您不会在 CoffeeScript 中将函数体包裹在大括号中。您还应该使用 class SidebarModel extends Backbone.Model,因为 CoffeeScript 的 class ... extends 机制与 Backbone 的 extends 兼容。
    猜你喜欢
    • 1970-01-01
    • 2012-05-17
    • 2019-02-10
    • 2014-07-08
    • 2011-03-09
    • 2014-01-06
    • 2012-04-10
    • 1970-01-01
    相关资源
    最近更新 更多