请帮我写一个ES6 class的例子
时间: 2023-05-17 22:03:25 浏览: 72
当然可以,以下是一个简单的 ES6 class 的例子:
```
class Person {
constructor(name, age) {
this.name = name;
this.age = age;
}
sayHello() {
console.log(`Hello, my name is ${this.name} and I am ${this.age} years old.`);
}
}
const john = new Person('John', 30);
john.sayHello(); // 输出 "Hello, my name is John and I am 30 years old."
```
这个例子定义了一个 `Person` 类,它有两个属性 `name` 和 `age`,以及一个方法 `sayHello`,用于输出一个问候语。我们可以使用 `new` 关键字创建一个 `Person` 对象,并调用它的 `sayHello` 方法。
相关问题
用es6里的class类怎么做一个排他
排他是指在某个范围内只能有一个对象被选中或操作。使用ES6的class类可以实现一个简单的排他功能,具体实现如下:
```javascript
class Exclusive {
static selected = null; // 用静态属性记录当前选中的对象
constructor(element) {
this.element = element;
this.element.addEventListener('click', this.handleClick.bind(this));
}
handleClick() {
if (Exclusive.selected !== null) { // 如果已有对象被选中,则取消选中
Exclusive.selected.element.classList.remove('selected');
}
this.element.classList.add('selected'); // 选中当前对象
Exclusive.selected = this; // 更新静态属性
}
}
```
使用方法:
```javascript
const elements = document.querySelectorAll('.item');
for (let i = 0; i < elements.length; i++) {
new Exclusive(elements[i]);
}
```
在这个例子中,我们创建了一个`Exclusive`类,它接受一个DOM元素作为参数,可以在该元素被点击时将其选中,并取消之前选中的元素。
我们用一个静态属性`selected`记录当前被选中的对象。在点击事件中,如果已有对象被选中,则取消选中,并选中当前对象。最后更新`selected`属性为当前对象。
使用时,我们可以通过`querySelectorAll`方法获取所有需要排他的元素,然后通过循环将它们实例化成`Exclusive`对象即可。
es6class类的语法
ES6的class是一个语法糖,它提供了更接近传统语言的写法,引入了类的概念。ES6的class和ES5的原型对象写法实现的功能基本相同,但class语法让对象原型的写法更加清晰、更像面向对象编程的语法。class的基本语法是使用关键字class定义一个类,类名可以自定义,然后使用constructor方法定义类的构造函数,constructor方法会在实例化对象时被调用。其他方法则直接定义在类的内部,不需要再用prototype来定义。例如,下面是一个使用ES6 class语法定义的Point类的例子:
```
class Point {
constructor(x, y) {
this.x = x;
this.y = y;
}
toString() {
return '(' + this.x + ', ' + this.y + ')';
}
}
```
上述代码定义了一个Point类,它有一个构造函数constructor,接受x和y两个参数,并将它们赋值给类的实例对象的属性。还定义了一个toString方法,用于返回表示坐标的字符串。使用这个类创建实例对象的方式如下:
```
let point = new Point(1, 2);
console.log(point.toString()); // 输出 (1, 2)
```
通过这个例子我们可以看到,ES6的class语法让定义和使用类更加简洁和直观。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *3* [Class 的基本语法](https://blog.csdn.net/weixin_44954172/article/details/103505657)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
- *2* [ES6之 class的基本语法(类)](https://blog.csdn.net/qq_43327305/article/details/102718892)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]