但是JS 中并没有一个真正的 class 原始类型, class 仅仅只是对原型对象运用语法糖。所以,只有理解如何使用原型对象实现类和类继承,才能真正地用好 class。
本质上js中class其实是构造函数的另一种写法,使之更加直观的展现构造器中的各项属性
基本使用
注意点:
(1)constructor是一个构造函数方法,创建对象时自动调用该方法
(2)constructor是类必须的一个属性,少了他类的创建会报错,如果我们不写的话js会给他自动加上
(3)this指的是实例化对象,就相当于构造函数中的this,指向的是当前创建的对象
(4)类中声明函数不需要function关键字,直接函数名即可
(5)方法之间不需要都好分割,加了会报错
因为本质上是构造函数的另一种写法,所以他的使用和一些其他特性都是和构造函数相似的。比如调用都是通过new关键字 并且class也存在prototype这个属性,通过她我们可以给这个类的原型对象定义属性。通过这个类创建出的对象一样会有这个属性
类的继承
子类继承基类后,同名的属性会覆盖掉基类,以上例子中两个类都有sayName函数,但是调用的时候输出的是子类的sayName。
一个构造函数可以使用 super 关键字来调用一个父类的构造函数。
同时类也支持get和set操作
需要准备的材料分别有:电脑、html编辑器、浏览器。
1、首先,打开html编辑器,新建html文件,例如:index.html,填充问题基础代码。
2、在index.html中的<script>标签,输入js代码:$('body').append($('button').attr('class'))。
3、浏览器运行index.html页面,此时按钮的class名被js取到并打印了出来。
js通过class改变样式,可以使用Dom的className属性设置元素的样式。完整示例代码如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>测试页面</title>
<style type="text/css">
.themeCls {
color: #000
background-color: #f60
line-height: 25px
}
</style>
</head>
<body style="background-color:#ccc">
<span id="theme">这是一段测试文本<br />用来测试js通过class改变样式</span>
<script type="text/javascript">
var domTheme = document.getElementById("theme")
theme.className = "themeCls"
</script>
</body>
</html>
具体操作步骤如下:
1、新建一个html文件,命名为t.html。
2、打开t.html。
3、在t.html中写入html结构代码,其中设置需要添加class类的元素的ID为“theme”。代码如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>测试页面</title>
</head>
<body style="background-color:#ccc">
<span id="theme">这是一段测试文本<br />用来测试js通过class改变样式</span>
</body>
</html>
4、设置一个css类,命名为”themeCls”,用于在javascript操作时给元素添加clsss。”themeCls”类为了方便观察效果,设置css规则为字体颜色为黑色#000,背景为橙色#f60,行高为25像素。代码如下:
<style type="text/css">
.themeCls {
color: #000
background-color: #f60
line-height: 25px
}
</style>
5、编写javascript代码,获取ID为“theme”的元素并设置元素的class类为“themeCls”,代码如下:
<script type="text/javascript">
var domTheme = document.getElementById("theme")
domTheme .className = "themeCls"
</script>
6、打开浏览器,浏览t.html页面,发现页面中”这是一段测试文本用来测试js通过class改变样式”这一段文本字体颜色呈现黑色,背景呈现橙色,说明我们为元素添加class类“themeCls”成功了。