Ho iniziato a studiare nodeJs e mi sono trovato davanti a esempi di codice come questi e non capisco cosa fanno, mi dareste una mano per favore, non sono neanche sicuro sia Javascript o se è un dialetto strano:
1) la freccia che significa? E come fa a funzionare questo codice?
var f = ([a, b] = [1, 2], {x: c} = {x: a + b}) =>
a + b + c;
f();
2) anche qui non capisco la sintassi
class MyArray1 extends Array {
}
let result1 = new MyArray1().map(x => x);
console.log(result1 instanceof MyArray1);
class MyArray2 extends Array {
static get [Symbol.species]() {
return Array;
}
}
let result2 = new MyArray2().map(x => x);
console.log(result2 instanceof MyArray2);
3) ma gli oggetti non si definiscono con le funzioni? Qui sembra diverso
class Point {
constructor(x, y) {
this.x = x;
this.y = y;
}
toString() {
return '(' + this.x + ', ' + this.y + ')';
}
sum(..form) {
let {a, b} = form;
return '(' + a+b +')';
}
static staticMethod() {
return 'classy';
}
}
class ColorPoint extends Point {
constructor(x, y, color) {
super(x, y);
this.color = color;
}
toString() {
return super.toString() + ' in ' + this.color;
}
}
let cp = new ColorPoint(25, 8, 'green');
cp.toString();
console.log(cp instanceof ColorPoint);
console.log(cp instanceof Point);
4) è questo? Cosa sono i tre puntini?
class IterableArguments {
constructor(...args) {
this.args = args;
}
* [Symbol.iterator]() {
for (let arg of this.args) {
yield arg;
}
}
}
for (let x of new IterableArguments('hello', 'world')) {
console.log(x);
}
5) ma set e get sono parole chiave?
var obj = {
get prop() {
return "Getter";
},
set prop(value) {
console.log("Setter: "+value);
}
}
> obj.prop
'Getter'
> obj.prop = 123;
Setter: 123
6) anche questo non lo capisco
Js.log("this is reason");
let x = [%bs.raw {| 'here is a string from javascript' |}];
Js.log(x ++ " back in reason land");
Aiutatemi per favore non ci capisco niente, ma Node che razza di javascript usa?