- 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; - 先用`.方法`执行任务程序,在用`.属性`得出新的结果; # 参考资料