語法糖是一種語法,使得語言更容易理解和更具有可讀性,它使語言相對我們來說變得更"甜"。這也意味著ES6的一些"新"的特點并不是真的新,只是試圖簡化語法而已,讓我們編程更容易。這樣就無需使用老式的取巧的方法編寫你的代碼,而是可以一種更簡單的方式來編寫代碼,那就是使用糖語法。
javascript并不像其他面向對象語言一樣支持類這個概念,相反js使用function
和prototype
模擬類的概念。
下面是創建類的新語法,類似JAVA代碼:
class Project {
constructor(name) {
this.name = name;
}
start() {
return "Project " + this.name + " starting";
}
}
var project = new Project("Journal");
project.start(); // "Project Journal starting"
你在這個類中定義的所有方法都被加入這個類的原型prototype
中。
既然JS不支持類,那么它支持繼承嗎?
是的,JS中繼承是通過prototype
實現。下面是WebProject子類繼承Project類的代碼:
class WebProject extends Project {
constructor(name, technologies) {
super(name);
this.technologies = technologies;
}
info() {
return this.name + " uses " + arrayToString(this.technology);
}
}
function arrayToString(param) {
// ... some implementation
}
var webJournal = new WebProject("FrontEnd Journal", "javascript");
webJournal.start(); // "FrontEnd Journal starting"
webJournal.info(); // "FrontEnd Journal uses javascript"
注意到在WebProject 構造器中,調用了Project的構造器,這樣可以使用它的屬性和方法。