- Objective:
- Breadcrumb:
# 概念阐释
## 语义
类中的方法与[[js objects methods 对象方法]]一样,除了方法、属性之间不能使用**逗号**。
## 语法
```js
class Dog {
constructor(name) {
this._name = name;
this._behavior = 0;
}
get name() {
return this._name;
}
get behavior() {
return this._behavior;
}
incrementBehavior() {
this._behavior++; //这里不写return是因为用了get,正常的函数都要写
}
}
const halley = new Dog('Halley');
```
**方法中不能用constructor的参数,只能是`this._`,否则会报错,没有被定义。**
### 调用方法
和[[js objects methods 对象方法]]一样,是调用类中的方法(函数),执行操作步骤。
```js
console.log(halley.behavior)// print 0
halley.incrementBehavior();
console.log(halley.behavior)// print 1
```
# 实例
# 相关内容
1. constructor中属性的写法 `this._property = property`,参数写在`()`里,其他数字衡量则不用;
2. 使用`get property()`方法获取属性;
3. 使用方法添加执行代码块,要更改的属性要用`this._property`
4. 创建新的实例;
5. `实例名称.方法() `是执行代码块
6. print时要用 `实例名称.property名称`
# 问题
🌟🌟
[练习题:方法](https://www.codecademy.com/journeys/full-stack-engineer/paths/fscj-22-front-end-development/tracks/fscj-22-javascript-syntax-part-iii/modules/wdcp-22-learn-javascript-syntax-classes-8d95f6d1-ff64-43c3-8ff7-cdc933e16fde/lessons/classes/exercises/methods)
- 继续创建`get` name和department的方法,并返回属性值;**为什么要有get?**
- 创建一个takeVacationDays方法,参数为daysOff,计算剩余假期减去休息日的值;
```js
class Surgeon {
constructor(name, department) {
this._name = name;
this._department = department;
this._remainingVacationDays=20;
}
};
```
[练习题:调用方法](https://www.codecademy.com/journeys/full-stack-engineer/paths/fscj-22-front-end-development/tracks/fscj-22-javascript-syntax-part-iii/modules/wdcp-22-learn-javascript-syntax-classes-8d95f6d1-ff64-43c3-8ff7-cdc933e16fde/lessons/classes/exercises/method-calls)
surgeonRomero用了3天假期,还剩几天假期?
# 问题答案
错题集:
- console调用的是类中的get;
- 先用`.方法`执行任务程序,在用`.属性`得出新的结果;
# 参考资料