语法糖是一种语法,使得语言更容易理解和更具有可读性,它使语言相对我们来说变得更"甜"。这也意味着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的构造器,这样可以使用它的属性和方法。
网友评论