JavaScript でスタックトレース出す
.catch(error => { console.log(error); });
これだと↓しか出ない
TypeError: Cannot call a class as a function(…)
stack を使う
.catch(error => { console.log(error.stack); });
こんな感じで出してくれるようになる
TypeError: Cannot call a class as a function at hoge (hoge.js:6) at fuga (g.js:6)
ES6構文の「...」(スプレッド演算子)
reducers にある ...state の ... ってなに?
case UPDATE: return { ...state, list: action.payload.list };
↓と同じ
return Object.assign({}, state, { list: action.payload.list })
普通だったらこうなるものを
var parts = ['shoulder', 'knees']; var lyrics = ['head', parts, 'and', 'toes']; console.log(lyrics); > [ 'head', [ 'shoulder', 'knees' ], 'and', 'toes' ]
これでできちゃう
var lyrics = ['head', ...parts, 'and', 'toes']; console.log(lyrics); > [ 'head', 'shoulder', 'knees', 'and', 'toes' ]
Redux のうんぬんではなく、 ES6 の構文。スプレッド演算子というらしい。
Factory Method ってなに?
他のクラスのインスタンス化の責任を負う必要がある普通の実装。
class Sample { class showName() { Name name = new AName(); System.out.println(name.getName()); // I'm A Name name = new BName(); System.out.println(name.getName()); // I'm B } } abstract class Name { abstract void getName(); } class AName extends Name { void getName() { System.out.println ("I'm A"); } } class BName extends Name { void getName() { System.out.println ("I'm B"); } }
インスタンスの生成は一箇所に集約して、責任を Factory に任せる実装
abstract class Factory { abstract Name factoryMethod(); } public class NameFactory extends Factory { abstract Name factoryMethod(); return new GetName(); } } public abstract class GetName { public abstract void manA(); public abstract void manB(); } public class Name extends GetName { public void manA() { System.out.println ("I'm A"); } public void manB() { System.out.println ("I'm B"); } } class Sample { void hoge() { Factory factory = new NameFactory(); Name name = factory.factoryMethod(); name.manA(); // I'm A name.manB(); // I'm B } }