On Github haraldringvold / es6-lyntale
(pilfunksjon, arrow function)
Et parameter
var reflect = value => value;
// effectively equivalent to:
var reflect = function(value) {
return value;
};
Flere parameter
var sum = (num1, num2) => { return num1 + num2; }
// effectively equivalent to:
var sum = function(num1, num2) {
return num1 + num2;
};
Inni curly braces: Mer eller mindre likt som insiden av en vanlig funksjon.
Uten parametere
var sum = () => 1 + 2;
// effectively equivalent to:
var sum = function() {
return 1 + 2;
};
Returnere 'object literals'
var getTempItem = id => ({ id: id, name: "Temp" });
// effectively equivalent to:
var getTempItem = function(id) {
return {
id: id,
name: "Temp"
};
};
jaokda!
var PageHandler = {
id: "123456",
init: function() {
document.addEventListener("click", function(event) {
this.doSomething(event.type);
}, false);
},
doSomething: function(type) {
console.log("Handling " + type + " for " + this.id);
}
};
var PageHandler = {
id: "123456",
init: function() {
document.addEventListener("click", (function(event) {
this.doSomething(event.type);
}).bind(this), false);
},
doSomething: function(type) {
console.log("Handling " + type + " for " + this.id);
}
};
Pilfunksjon
var PageHandler = {
id: "123456",
init: function() {
document.addEventListener("click",
event => this.doSomething(event.type), false);
},
doSomething: function(type) {
console.log("Handling " + type + " for " + this.id);
}
};
ES6-klasser er enkel syntaktisk sukker over prototyp-basert OO-teknikk.
En praktisk deklarativ form som uttrykker programmererens hensikt i stedet for den underliggende maskineriet.
Javascripts konstruktør funksjoner, prototyper og instanser er mer en nok til å løse det klasser gjør i andre språk.
ES6 klasser er disse tre under panseret.
Utkast, fortsatt i endring. Siste endring var rev. 28, 14. oktober
var Language = function(config) {
this.name = config.name;
this.founder = config.founder;
this.year = config.year;
};
Language.prototype.summary = function() {
return this.name + " was created by " + this.founder + " in " + this.year;
};
class Language {
constructor(name, founder, year) {
this.name = name;
this.founder = founder;
this.year = year;
}
summary() {
return this.name + " was created by " + this.founder + " in " + this.year;
}
}
class MetaLanguage extends Language {
constructor(x, y, z, version) {
super(x, y, z);
this.version = version;
}
static isItMeta() {
return "YEEEEESH!" ;
}
}
..svares etter beste evne.
Husk å gi tilbakemelding!