ES6小技巧
可选参数实现中间件
function mandatory() {
throw new Error("Missing parameter")
}
function foo(mustBeProvided = mandatory()) {
return mustBeProvided
}
for of 遍历下标
const arr = ["a", "b", "c"]
for (const [index, elem] of arr.entries()) {
console.log(`index = <span class="katex--inline"><span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mrow><mi>i</mi><mi>n</mi><mi>d</mi><mi>e</mi><mi>x</mi></mrow><mo separator="true">,</mo><mi>e</mi><mi>l</mi><mi>e</mi><mi>m</mi><mo>=</mo></mrow><annotation encoding="application/x-tex">{index}, elem = </annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.8889em;vertical-align:-0.1944em;"><span class="mord"><span class="mord mathnormal">in</span><span class="mord mathnormal">d</span><span class="mord mathnormal">e</span><span class="mord mathnormal">x</span></span><span class="mpunct">,</span><span class="mspace" style="margin-right:0.1667em;"><span class="mord mathnormal">e</span><span class="mord mathnormal" style="margin-right:0.01968em;">l</span><span class="mord mathnormal">e</span><span class="mord mathnormal">m</span><span class="mspace" style="margin-right:0.2778em;"><span class="mrel">=</span></span></span></span></span>{elem}`)
}
</span></span></span>
MixIn混入
const Storage = Sup => class extends Sup {
save(database) { ··· }
};
const Validation = Sup => class extends Sup {
validate(schema) { ··· }
};
class Person { ··· }
class Employee extends Storage(Validation(Person)) { ··· }
Object.defineProperty(temp1, 'key1', {
enumerable: true
})