ID:K1W.PI さんの質問

JSでthisを一旦退避することってあると思うんですが、その時の変数名って何が一番メジャーなんでしょうか?
いろんなコードみたところ、self, _this, thatの3つが多い印象なんですが、どうされてますでしょうか?
出来れば理由も合わせて回答頂きたいです。

みんなの回答 8 件

ID:h6lFMg さんの回答

CoffeeScriptもTypeScriptも_thisを使ってるからわりとメジャーなんじゃない?

ID:sS1IXT さんの回答

var o = this;
CoffeeScript とか TypeScript が出る前に独学でクセがついてしまった。

ID:bX7IEp さんの回答

_selfって書いてます。

selfは確か予約語としてすでに存在してたはず。まぁ上書いちゃっても不都合生じないですが。

ID:G9gWFQ さんの回答

thatとか見た事ありますね。

ID:2kBFxl さんの回答

selfかな。
ちなみに、thisがjQueryオブジェクトの場合は、$selfにする。

ID:.hf/on さんの回答

jqueryオブジェクトにするばあいは、$this
そうじゃない場合は、_this

ID:z2FA8S さんの回答

thatが最も良いです。
selfはwindow.selfが既にあるのでふさわしくありませんし、接頭詞をつけるのもあまりよくありません。
まあ、ほんとうに良いのはbindやarrowfunctionを使ってそもそも退避しないことです。

ID:K1W.PI

接頭辞をつけるのがよくない理由も教えていただけますか?

ID:K1W.PI さんの回答

皆さんご回答ありがとうございます。
意外とバラけましたね。selfに関しては、再度調べた所、ブラウザによって挙動が違うっぽいので、避けるべきでしょうね。
thatは、有名どころだとBootstrapで使われてたと思います。

まとめると、_thisかthatのどちらかがいいんでしょうかね。
こういう事まで社内でルール化されてたりしますか?

ID:z2FA8S

あくまで退避しないのが一番良い。
bindやmapなんかだと第二引数、またはアロー関数を使うと良い。

ID:K1W.PI

クロージャー内のthisを使いたい場合ってどうするんですか?

ID:z2FA8S

具体例がないと何について言ってるのかわからない。
基本的な方法は何度も挙げてる。

ID:K1W.PI

退避しないほうがいい理由はなんですか?

ID:z2FA8S

そもそも退避しなくて済ますことができるんだから、わざわざ退避させてそのやり方について悩むこともないのは自明でしょう。

最終更新日:2014-10-23 (2,652 views)

関連するトピックス

ページ上部に戻る