JSでthisを一旦退避することってあると思うんですが、その時の変数名って何が一番メジャーなんでしょうか?いろんなコードみたところ、self, _this, thatの3つが多い印象なんですが、どうされてますでしょうか?出来れば理由も合わせて回答頂きたいです。
CoffeeScriptもTypeScriptも_thisを使ってるからわりとメジャーなんじゃない?
var o = this;CoffeeScript とか TypeScript が出る前に独学でクセがついてしまった。
_selfって書いてます。
selfは確か予約語としてすでに存在してたはず。まぁ上書いちゃっても不都合生じないですが。
thatとか見た事ありますね。
selfかな。ちなみに、thisがjQueryオブジェクトの場合は、$selfにする。
jqueryオブジェクトにするばあいは、$thisそうじゃない場合は、_this
thatが最も良いです。selfはwindow.selfが既にあるのでふさわしくありませんし、接頭詞をつけるのもあまりよくありません。まあ、ほんとうに良いのはbindやarrowfunctionを使ってそもそも退避しないことです。
接頭辞をつけるのがよくない理由も教えていただけますか?
皆さんご回答ありがとうございます。意外とバラけましたね。selfに関しては、再度調べた所、ブラウザによって挙動が違うっぽいので、避けるべきでしょうね。thatは、有名どころだとBootstrapで使われてたと思います。
まとめると、_thisかthatのどちらかがいいんでしょうかね。こういう事まで社内でルール化されてたりしますか?
あくまで退避しないのが一番良い。bindやmapなんかだと第二引数、またはアロー関数を使うと良い。
クロージャー内のthisを使いたい場合ってどうするんですか?
具体例がないと何について言ってるのかわからない。基本的な方法は何度も挙げてる。
退避しないほうがいい理由はなんですか?
そもそも退避しなくて済ますことができるんだから、わざわざ退避させてそのやり方について悩むこともないのは自明でしょう。
みんなの回答 8 件
CoffeeScriptもTypeScriptも_thisを使ってるからわりとメジャーなんじゃない?
var o = this;
CoffeeScript とか TypeScript が出る前に独学でクセがついてしまった。
_selfって書いてます。
selfは確か予約語としてすでに存在してたはず。まぁ上書いちゃっても不都合生じないですが。
thatとか見た事ありますね。
selfかな。
ちなみに、thisがjQueryオブジェクトの場合は、$selfにする。
jqueryオブジェクトにするばあいは、$this
そうじゃない場合は、_this
thatが最も良いです。
selfはwindow.selfが既にあるのでふさわしくありませんし、接頭詞をつけるのもあまりよくありません。
まあ、ほんとうに良いのはbindやarrowfunctionを使ってそもそも退避しないことです。
皆さんご回答ありがとうございます。
意外とバラけましたね。selfに関しては、再度調べた所、ブラウザによって挙動が違うっぽいので、避けるべきでしょうね。
thatは、有名どころだとBootstrapで使われてたと思います。
まとめると、_thisかthatのどちらかがいいんでしょうかね。
こういう事まで社内でルール化されてたりしますか?
関連するトピックス