CoffeeScript

JavaScript

CoffeeScript 嵌入 JavaScript

28 0

嵌入 JavaScript 问题 你想在CoffeeScript中嵌入找到的或预先编写的JavaScript代码。 解决方案 把JavaScript包装到撇号中:`function greet(name) { return "Hello "+name; }`# Back to CoffeeScript greet "Coffee" # => "Hello Coffee" 讨论 这是在CoffeeScript代码中集成少量JavaScript

JavaScript

CoffeeScript 修饰模式

27 0

修饰模式 问题 你有一组数据,需要在多个过程、可能变换的方式下处理。 解决方案 使用修饰模式来构造如何更改应用。miniMarkdown = (line) ->if match = line.match /^(#+)\s*(.*)$/headerLevel = match[1].lengthheaderText = match[2]"<h#{headerLevel}>#{headerText}</h#{headerLevel}>"elseif line.l

JavaScript

CoffeeScript 解释器模式

31 0

解释器模式 问题 其他人需要以控制方式运行你的一部分代码。相对地,你选择的语言不能以一种简洁的方式表达问题域。 解决方案 使用解释器模式来创建一个你翻译为特定代码的领域特异性语言(domain-specific language)。 我们来做个假设,例如用户希望在你的应用程序中执行数学运算。你可以让他们正向运行代码来演算指令(eval)但这会让他们运行任意代码。相反,你可以提供一个小型的“堆栈计算器(stack calculator)”语言,用来做单独分析,以便只运行数学运算,同时报告更有用的错误信息。c

JavaScript

CoffeeScript MongoDB

31 0

MongoDB 问题 你需要与一个MongoDB数据库连接的接口。 解决方案 对于 Node.js 安装如果你的计算机中还没有MongoDB ,需要安装。安装本地 MongoDB 模块。保存记录mongo = require 'mongodb'server = new mongo.Server "127.0.0.1", 27017, {}client = new mongo.Db 'test', server, {w:1}# save() updates

JavaScript

CoffeeScript 由数组创建一个对象词典

29 0

由数组创建一个对象词典 问题 你有一组对象,例如:cats = [{name: "Bubbles"age: 1},{name: "Sparkle"favoriteFood: "tuna"} ] 但是你想让它像词典一样,可以通过关键字访问它,就像使用cats["Bubbles"]。 解决方案 你需要将你的数组转换为一个对象。通过这样使用reduce:# key = The key by which to index the di

JavaScript

CoffeeScript 类似 Python 的 zip 函数

27 0

类似 Python 的 zip 函数 问题 你想把多个数组连在一起,生成一个数组的数组。换句话说,你需要实现与Python中的zip函数类似的功能。Python的zip函数返回的是元组的数组,其中每个元组中包含着作为参数的数组中的第i个元素。 解决方案 使用下面的CoffeeScript代码:# Usage: zip(arr1, arr2, arr3, ...) zip = () ->lengthArray = (arr.length for arr in arguments)length = Ma

JavaScript

CoffeeScript 单件模式

49 0

单件模式 问题 许多时候你想要一个,并且只要一个类的实例。比如,你可能需要一个创建服务器资源的类,并且你想要保证使用一个对象就可以控制这些资源。但是使用时要小心,因为单件模式可以很容易被滥用来模拟不必要的全局变量。 解决方案 公有类只包含获得一个实例的方法。实例被保存在该公共对象的闭包中,并且总是有返回值。 这很奏效因为CoffeeScript允许你在一个类的声明中定义可执行的状态。但是,因为大多数CoffeeScript编译成一个IIFE包,如果这个方式适合你,你就不需要在类的声明中放置私有的类。之后的

JavaScript

CoffeeScript 类变量和实例变量

27 0

类变量和实例变量 问题 你想创建类变量和实例变量(属性)。 解决方案 类变量class Zoo@MAX_ANIMALS: 50MAX_ZOOKEEPERS: 3helpfulInfo: =>"Zoos may contain a maximum of #{@constructor.MAX_ANIMALS} animals and #{@MAX_ZOOKEEPERS} zoo keepers."Zoo.MAX_ANIMALS # => 50Zoo.MAX_ZOOKEEPERS