Class的初识-声明一个类
1 | class User{ |
构造函数
1
2
3
4
5
6class User{
constructor(arg1){
this.arg1 = arg1;
}
}
let user = new User('哈哈');见识了javascript中的类,可以发现有了类之后面向对象的编程更加直观明了,那么Class的原理是否也如其他面向对象语言一样呢?
1 | /* 类的声明 */ |

1 | /* 函数的声明 */ |

可以发现class和function的原型都是function,也就是说class底层的机制仍然是原型机制,可以说类就是函数。class 只是语法糖为了让类的声明与继承更加简洁清晰。
对象属性的声明
1 | class User{ |
user:
严格模式下this的不同
1 | class User{ |
class声明的方法不可遍历
- 先看一下函数中声明的方法但是有时我们遍历对象的属性并不想遍历到它的原型上的属性,该怎么办呢
1
2
3
4
5
6
7
8
9function H(){
H.prototype.show = function(){}
}
/* 声明H的对象 */
let h = new H();
h.a1 = 'a1';
for(let key in h){
console.log(key);//循环输出 a1,show
}1
静态访问
静态属性
静态属性即为类设置属性,而不是为生成的对象设置,在 class 中为属性添加 static 关键字即声明为静态属性
1 | /* 可以把为所有对象使用的值定义为静态属性 */ |