質問: [ {"a": 1}, {"b": 1}, {"c": 1}, {"d": 1}, ]; ary.forEach (function(val, index) { console.log(val); this.method2(); ←このメソッドが呼べない }); }, method2 () { console.log(1); }, ```
回答: 結論から言うと、vue.jsは関係なくjavascriptの話です。 ご理解されている通り、`forEach`内の`this`は配列自身のことを指しています。 一方`method2`はvueインスタンスに属するメソッドですので、この配列を指すthisからは呼び出せません。 次のいずれかの方法で解決できます。 1. ``` ary.forEach((val, index) => { console.log(val); this.method2(); }); ``` 2. ``` ary.forEach(function(val, index) { console.log(val); this.method2(); }, this); ``` 1はアロー関数式というもので関数内のthisを語彙的に束縛します。 2はforEachの第2引数で、コールバック関数内のthisを指定しています。 (ちょっとややこしいですね・・・詳しくはご自身で検索等してみてください) 現在は前者の1の方法が一般的だと思います。