糖语法

2016-05-11  本文已影响95人  crocodile_b

语法糖是一种语法,使得语言更容易理解和更具有可读性,它使语言相对我们来说变得更"甜"。这也意味着ES6的一些"新"的特点并不是真的新,只是试图简化语法而已,让我们编程更容易。这样就无需使用老式的取巧的方法编写你的代码,而是可以一种更简单的方式来编写代码,那就是使用糖语法。

javascript并不像其他面向对象语言一样支持类这个概念,相反js使用functionprototype模拟类的概念。

下面是创建类的新语法,类似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的构造器,这样可以使用它的属性和方法。

上一篇 下一篇

猜你喜欢

热点阅读