ES6類和模塊

1、類

Class是ES6中的語法糖,本質上還是function。(語法看起來更簡潔、可讀性高、可維護性高),下面是java中的語法糖:

List list = new ArrayList();
list.add(new Object());
foreach(Object obj:list){
System.out.printIn(obj);
}

list.foreach(obj -> System.out.printIn(obj));
//java語言不管怎麼變,本質上還是類,強行類

在ES6中類可以匿名或者直接命名:
在這裏插入圖片描述
注意:
1、類不可以重複聲明:
在這裏插入圖片描述
2、必須在訪問前對類進行定義,不然就會報錯。類中方法不需要 function 關鍵字。方法間不能加分號。

屬性
prototype
ES6 中,prototype 仍舊存在,雖然可以直接自類中定義方法,但是其實方法還是定義在 prototype 上的。 覆蓋方法 / 初始化時添加方法

Example.prototype={
}

New
和java一樣,class的實例化必須通過New關鍵字

class a{}
let b = a();//會報錯

注意要點
類不能繼承常規對象

var Father = {
}
class Child extends Father {
}//錯誤提示

2.模塊

export (導出)與 import(導入)
模塊導入導出各種類型的變量,如字符串,數值,函數,類。
export 命令可以出現在模塊的任何位置,但必需處於模塊頂層。
import 命令會提升到整個模塊的頭部,首先執行。

export default 命令
在一個文件或模塊中,export、import 可以有多個,export default 僅有一個。
export default 中的 default 是對應的導出接口變量。
通過 export 方式導出,在導入時要加{ },export default 則不需要。
export default 向外暴露的成員,可以使用任意變量來接收。

//Test.js文件
let show1 = function() {
	return "默認方法";
}

let show2 = function() {
	return "輸出show2方法";
}

let show3 = function(){
	return "輸出show3方法";
}

//導出show2和show3
export {show2,show3};

//默認導出show1
export default{
	show1
}
------------------------
//HTML文件
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<script type="module">
		import s from './js/Test.js';
		//默認方法
		alert(s.show1());//默認方法
		//調用其他兩個方法
		import {show2,show3} from './js/Test.js';
		alert(show2());//輸出show2方法
		alert(show3());//輸出show3方法
		</script>
	</body>
</html>

模塊的優點:
1.可以減少命名的衝突.
2.隔離性強,避免每一次引入的依賴
3.執行效率高
4.在多次引用同一個js文件,只執行一次

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章