- CoffeeScript 教程
- CoffeeScript - 主页
- CoffeeScript - 概述
- CoffeeScript - 环境
- CoffeeScript - 命令行实用程序
- CoffeeScript - 语法
- CoffeeScript - 数据类型
- CoffeeScript - 变量
- CoffeeScript - 运算符和别名
- CoffeeScript - 条件
- CoffeeScript - 循环
- CoffeeScript - 理解
- CoffeeScript - 函数
- CoffeeScript 面向对象
- CoffeeScript - 字符串
- CoffeeScript - 数组
- CoffeeScript - 对象
- CoffeeScript - 范围
- CoffeeScript - Splat
- CoffeeScript - 日期
- CoffeeScript - 数学
- CoffeeScript - 异常处理
- CoffeeScript - 正则表达式
- CoffeeScript - 类和继承
- CoffeeScript 高级版
- CoffeeScript - Ajax
- CoffeeScript - jQuery
- CoffeeScript-MongoDB
- CoffeeScript-SQLite
- CoffeeScript 有用资源
- CoffeeScript - 快速指南
- CoffeeScript - 有用的资源
- CoffeeScript - 讨论
CoffeeScript - 对象
CoffeeScript 中的对象与 JavaScript 中的对象类似。这些是属性的集合,其中属性包括由分号 (; )分隔的键和值。简而言之,CoffeeScript 对象是键值对的集合。对象使用大括号定义,空对象表示为{}。
句法
下面给出的是 CoffeeScript 中对象的语法。在这里,我们将对象的键值对放在大括号内,并使用逗号(,)分隔。
object ={key1: value, key2: value,......keyN: value}
例子
以下是在 CoffeeScript 中定义对象的示例。将此代码保存在名为objects_example.coffee的文件中
student = {name: "Mohammed", age: 24, phone: 9848022338 }
打开命令提示符并编译 .coffee 文件,如下所示。
> coffee -c objects_example.coffee
编译时,它会给出以下 JavaScript。
// Generated by CoffeeScript 1.10.0 (function() { var student; student = { name: "Mohammed", age: 24, phone: 9848022338 }; }).call(this);
就像在数组中一样,我们可以通过在新行中指定键值对来删除逗号,如下所示。
student = { name: "Mohammed" age: 24 phone: 9848022338 }
用缩进代替大括号
就像 CoffeeScript 中的其他块语句一样,我们可以使用缩进代替大括号{},如下例所示。
例子
我们可以重写上面的例子,不带花括号,如下所示。
student = name: "Mohammed" age: 24 phone: 9848022338
嵌套对象
在 CoffeeScript 中,我们可以在对象中编写对象。
例子
以下示例演示了 CoffeeScript 中的嵌套对象。将此代码保存在名为nested_objects.coffee的文件中
contact = personal: email: "personal@gmail.com" phone: 9848022338 professional: email: "professional@gmail.com" phone: 9848033228
打开命令提示符并编译 .coffee 文件,如下所示。
> coffee -c nested_objects.coffee
编译时,它会给出以下 JavaScript。
// Generated by CoffeeScript 1.10.0 (function() { var contact; contact = { personal: { email: "personal@gmail.com", phone: 9848022338 }, professional: { email: "professional@gmail.com", phone: 9848033228 } }; }).call(this);
对对象的理解
要迭代对象的内容,我们可以使用推导式。迭代对象的内容与迭代数组的内容相同。在对象中,由于我们必须检索两个元素键和值,因此我们将使用两个变量。
例子
以下示例展示了如何使用推导式迭代对象的内容。将此代码保存在名为object_compressives.coffee的文件中
student = name: "Mohammed" age: 24 phone: 9848022338 console.log key+"::"+value for key,value of student
打开命令提示符并编译 .coffee 文件,如下所示。
> coffee -c object_comprehensions.coffee
编译时,它会给出以下 JavaScript。
// Generated by CoffeeScript 1.10.0 (function() { var key, student, value; student = { name: "Mohammed", age: 24, phone: 9848022338 }; for (key in student) { value = student[key]; console.log(key(+"::" + value)); } }).call(this);
现在,再次打开命令提示符并运行 CoffeeScript 文件,如下所示。
> coffee object_comprehensions.coffee
执行时,CoffeeScript 文件会产生以下输出。
name::Mohammed age::24 phone::9848022338
对象数组
在 CoffeeScript 中,数组还可以包含对象,如下所示。
a = [ object1_key1: value object1_key2: value object1_key3: value , object2_key1: value object2_key2: value object2_key3: value ]
以下示例显示如何定义对象数组。我们可以在数组中列出我们想要的对象的键值对,并使用逗号(,)分隔它们。
students =[ name: "Mohammed" age: 24 phone: 9848022338 , name: "Ram" age: 25 phone: 9800000000 , name: "Ram" age: 25 phone: 9800000000 ] console.log student for student in students
打开命令提示符并编译 .coffee 文件,如下所示。
c:\> coffee -c array_of_objects.coffee
编译时,它会给出以下 JavaScript。
// Generated by CoffeeScript 1.10.0 (function() { var i, len, student, students; students = [ { name: "Mohammed", age: 24, phone: 9848022338 }, { name: "Ram", age: 25, phone: 9800000000 }, { name: "Ram", age: 25, phone: 9800000000 } ]; for (i = 0, len = students.length; i < len; i++) { student = students[i]; console.log(student); } }).call(this);
现在,再次打开命令提示符并运行 CoffeeScript 文件,如下所示。
c:\> coffee array_of_objects.coffee
执行时,CoffeeScript 文件会产生以下输出。
{ name: 'Mohammed', age: 24, phone: 9848022338 } { name: 'Ram', age: 25, phone: 9800000000 } { name: 'Ram', age: 25, phone: 9800000000 }
保留关键字
JavaScript 不允许保留关键字作为对象的属性名称,如果我们想使用它们,我们必须使用双引号" "将它们括起来。
例子
考虑以下示例。这里我们创建了一个名为class 的属性,它是一个保留关键字。将此代码保存在名为reserved_keywords.coffee的文件中
student ={ name: "Mohammed" age: 24 phone: 9848022338 class: "X" } console.log key+"::"+value for key,value of student
打开命令提示符并编译 .coffee 文件,如下所示。
c:\> coffee -c reserved_keywords.coffee
编译时,它会给出以下 JavaScript。在这里您可以观察到 CoffeeScript 编译器代表我们用双引号将关键字 class 括起来。
// Generated by CoffeeScript 1.10.0 (function() { var key, student, value; student = { name: "Mohammed", age: 24, phone: 9848022338, "class": "X" }; for (key in student) { value = student[key]; console.log(key + "::" + value); } }).call(this);
现在,再次打开命令提示符并运行 CoffeeScript 文件,如下所示。
c:\> coffee array_of_objects.coffee
执行时,CoffeeScript 文件会产生以下输出。
name::Mohammed age::24 phone::9848022338 class::X