JSでclassかけるのいいですよね
class Person {
constructor(name) {
this.name = name;
}
}
簡潔に書けるようになってホントに良かった進化は素晴らしい
継承も楽だし
mixinしたくなってきた
railsのconcern的なことしたいなぁと思ったのでやってみました。
こちらの記事で文法を拡張する感じのことやっててすげぇ!ってなったんだけど実用はキツイかなと思った
JavaScriptのES2015クラスでmixinを実装する世界一美しい方法
調べたところシンプルに Object.assign
使えばできました。
const Walkable = {
walk() {
console.log(`${this.name}は歩いているよ`);
}
}
class Person {
constructor(name) {
this.name = name;
Object.assign(this, Walkable);
}
}
const person = new Person("ほげほげ");
person.walk(); // => ほげほげは歩いているよ
ちなみに Object.assign
は少し前のSafariで実装されてなかったりするのでlodashを使えば安全です。