在其它编程语言中,类是一个非常重要的概念,但在JS中我们只做了解,因为它在实际生产环境中并不常用。
我们在这里讲JS中类的定义和使用语法,只是为了让大家见到这种语法后能够理解。
首先解释一下何为类:类即一类事物,例如人类、犬类、猫类,从类派生出来的东西叫对象,对象是类中具体的一个。
在JS中,类和构造函数的功能基本类似,可以这样说,JS中的类基本上就是构造函数的另一种写法,所以说,只要掌握了构造函数即可。
文本我们先来看如何定义一个类
<!DOCTYPE html>
<html>
<head>
<title>JS中类的定义及类的结构</title>
</head>
<body>
<script type="text/javascript">
//使用class关键字 定义类,实例化得到对象
class A{
//构造方法
constructor(){
//在构造方法中定义属性
this.age = 30;
}
// static age=40;
//实例方法
say(){
console.log('我是A中实例方法say'+ this.age);
}
//静态方法 :不需要实例化对象,可以使用类名.方法() 调用
static say(){
console.log('我是A中静态方法coding' + this.age);// this.age是undefined
// console.log(this); // this指向的是类A
}
//说明:静态方法和实例方法 名称可以相同,不会互相影响
//调用时,各有各的写法
}
//静态方法的调用,由于没有实例化过程,构造方法中的代码不会自动执行。
A.say();
//调用实例方法
var obj = new A();
obj.say();
</script>
</body>
</html>
解释一下:
静态方法的调用,由于没有实例化过程,所以构造方法中的代码不会自动执行,所在在静态方法say中使用this.age时输出undefined。
如果静态方法确实要使用类中的属性,需要在类中定义静态属性:static age=40;
静态方法和实例方法可以重名。
执行结果如下:
|