在JS中class类里面的方法可枚举嘛
时间: 2024-04-08 07:34:04 浏览: 33
在 JavaScript 中,类(class)里面的方法默认是可枚举的。当你使用 class 关键字定义一个类时,类的方法会被定义在原型对象(prototype)上,而原型对象的属性默认是可枚举的。
例如,下面是一个简单的类的例子:
```javascript
class MyClass {
method1() {
// 方法1的实现
}
method2() {
// 方法2的实现
}
}
const instance = new MyClass();
console.log(Object.keys(instance)); // 输出 ["method1", "method2"]
```
在这个例子中,我们创建了一个名为 MyClass 的类,并定义了两个方法 method1 和 method2。当我们创建 MyClass 的实例并使用 Object.keys() 方法来获取实例上的属性时,会返回方法名字的数组 ["method1", "method2"]。
需要注意的是,通过 class 关键字定义的类方法默认是可枚举的,但是类的构造函数(constructor)是不可枚举的。如果你想让某个方法不可枚举,可以使用 Object.defineProperty() 方法来定义该方法,并将 enumerable 属性设置为 false。
```javascript
class MyClass {
constructor() {
// 构造函数
}
method1() {
// 方法1的实现
}
method2() {
// 方法2的实现
}
}
Object.defineProperty(MyClass.prototype, 'method1', { enumerable: false });
const instance = new MyClass();
console.log(Object.keys(instance)); // 输出 ["method2"]
```
在这个例子中,我们使用 Object.defineProperty() 方法将 method1 的 enumerable 属性设置为 false,这样该方法就不会被 Object.keys() 枚举到了。所以输出的数组中只包含 method2。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)