use strict で this がエラーを吐く
タイトルのとおり
ある大きな function の中で vars という変数を定義したとする
"use strict" /// 大 function var _vars = "hey!!!"; function something(hello) { hoge.fuga(params, function (p) { this._vars; /// エラーを吐く }; };
みたいなことが起きた。
どう怒られるかというと、
ReferenceError: _vars is not defined
とか言われる。
ES6 のドキュメントとか読んでいても this の扱い方としてはあっているはずなのになー、と思ったら、
"use strict" /// 大 function var _vars = "hey!!!"; function something(hello) { hoge.fuga(params, (p) => { this._vars; /// エラーを吐く }; };
という arrow 記述にしたら直った。
記述自体も新しくあわせろやっていうことですね。
個人的には function って書いてある方がある程度読みやすいと思うんだけどな……。