📅  最后修改于: 2023-12-03 15:14:12.148000             🧑  作者: Mango
CoffeeScript 是一种与JavaScript兼容的编程语言,它的语法更加简洁和优雅。在CoffeeScript中,定义一个类和继承一个类非常容易。
在CoffeeScript中定义一个类,我们使用class
关键字,然后是类的名称。在类的内部,我们使用缩进来组织代码块。
下面是定义一个名为Person
的类的示例:
class Person
constructor: (name, age) ->
@name = name
@age = age
sayHi: ->
console.log "Hi, my name is #{@name} and I'm #{@age} years old."
从上述示例中我们可以看出,类中有两个方法:构造函数 constructor
和方法 sayHi
。构造函数是在类实例化时被调用的函数,可以在里面设置实例变量。
在 CoffeeScript 中,我们使用 @
来表示 this
。
继承在面向对象编程中是一个非常重要和有用的概念。为了继承一个类,我们使用 extends
关键字。假设我们有一个名为 Student
的子类,通过以下代码可以实现类 Student
继承自类 Person
:
class Student extends Person
constructor: (name, age, grade) ->
super(name, age) # 调用父类的构造函数
@grade = grade
sayHi: ->
console.log "Hi, my name is #{@name}, I'm #{@age} years old and I'm in grade #{@grade}."
在上面的代码中,我们通过extends
关键字告诉 CoffeeScript Student
类继承自 Person
类。由于 Student
类要添加额外的实例变量 grade
,所以我们需要在构造函数中添加 grade
参数,然后在 super
中调用父类的构造函数,将 name
和 age
参数传递给父类来设置实例变量。
此外,子类还可以对父类方法进行覆盖(即重载)。在上面的示例中,我们已经覆盖了 sayHi
方法,以显示所有实例变量。
下面是使用 Person
和 Student
类创建对象的示例:
person1 = new Person("Tom", 20)
person1.sayHi() # 输出 "Hi, my name is Tom and I'm 20 years old."
student1 = new Student("Bob", 18, 12)
student1.sayHi() # 输出 "Hi, my name is Bob, I'm 18 years old and I'm in grade 12."
通过这个简短的教程,您应该已经了解了 CoffeeScript 中类和继承的基础知识。通过使用类和继承,我们可以轻松地创建更具可读性和可维护性的代码。