どれがこれであれがどれだ。なんか JavaScript の this について揉めてるらしいので燃料投下することにした。これで何度目だよチキショー。早いとこ学習しやがれ。
this は4種類もない
this は1つだ。
「this はレシーバを指す」
これだけだ。
レシーバの指し方が複数ある
複数あるのはこっちだ。覚えておけ。
- receiver.method()
- method.call(receiver)
- method.apply(receiver)
- method.bind(receiver)()
- new Constructor()
上4つは見たままだ。一番下は少し特殊だが、新しく生成されたオブジェクトがレシーバになる。以下の様なコードを思い浮かべるとわかりやすい。
function Constructor () {} var receiver = Object.create(Constructor.prototype); receiver.constructor = Constructor; receiver.constructor();