JavaScript class 类封装的简单使用 基于 ECMAScript 6 即 ECMAScript 2015

JavaScript class 类封装的简单使用 基于 ECMAScript 6 即 ECMAScript 2015 

文章来源 blog.csdn.net/joyous/article/details/79102169

创建一个 js 文件 test.js

在下面的例子中,我们首先定义一个名为Polygon 的 class,然后继承它来创建另个名为 Square 的 class。注意,构造函数中使用的 super() 只能在构造函数中使用,并且必须在使用 this 关键字前调用。

再在 Polygon 的 class 中定义两个函数 fun1 和 fun2,输出构造传入的参数。

 

/**
 * 创建两个 js class, 并定义一个 constructor (构造)
 */

class Polygon {
  // 构造函数
  constructor(height, width) {
    this.name = 'Polygon';
    this.height = height;
    this.width = width;
  }

  // fun1 函数
  fun1() {
    console.log('fun1', this.name, this.height, this.width);
  }

  // fun2 函数
  fun2() {
    console.log('fun2', this.name, this.height, this.width);
  }
}

// 定义 Square class 并扩展 Polygon
class Square extends Polygon {
  constructor(height, width) {
    super(height, width);
    this.name = 'Square';
  }
}

创建一个 html 页面文件

 

 

<!DOCTYPE>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<script src="test.js" type="text/javascript"></script>
<script type="text/javascript">
	// 创建对象
	var polygon1 = new Polygon(10, 15);
	var polygon2 = new Polygon(20, 30);

	polygon1.fun1();
	polygon1.fun2();

	polygon2.fun1();
	polygon2.fun2();

	var square = new Square(35, 36);
	square.fun1();
	square.fun2();
</script>
</head>
<body>
	<a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/class">参考代码</a>
</body>
<script type="text/javascript">
	
</script>

</html>

输出结果

 

 

// polygon1.fun1() 输出
fun1 Polygon 10 15

// polygon1.fun2() 输出
fun2 Polygon 10 15

// polygon2.fun1() 输出
fun1 Polygon 20 30

// polygon2.fun2() 输出
fun2 Polygon 20 30

// square.fun1() 输出
fun1 Square 35 36

// square.fun2() 输出
fun2 Square 35 36

 

以上测试基于Google Chrome ver63,我们可以看到 javascript 的 class 完全如预期运行,正确显示了 polygon 的 fun 和 Square 的 fun,这种定义方式和 C++/ Java 的 class 定义方式非常相似,符合类封装概念,后端程序员可以完全以 class 的思想来使用 javascript,不再觉得以前的 javascript 语法略显不适应(从 C++/Java 语法角度看),对于 C++/Java 程序员需要兼顾 javascript 程序的简直就是福音。

文章来源 blog.csdn.net/joyous/article/details/79102169

Q群讨论:236201801

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值