下記の関数呼び出しコードの2、3がなぜがグローバルオブジェクト(この場合はWindowオブジェクト)を指すのですか?また1のコードがobject(この場合はobj)を指すのですか?

できるだけ詳しくお願いします。
いろいろ調べてみるとJavaScriptの内部のreference型が関係している?内部のGetValue()が関係しているのか?

var obj = {
func: function() {
alert(this);
}
};
var baz = obj.func;
baz(); // bazがグローバルオブジェクトのプロパティとして呼ばれているので、
// this値がグローバルオブジェクトを指すのは分かります。
obj.func(); // これも一般的なメソッドの呼び出し方であるので、理解できるのですが。

// 下記の1、2、3が分かりません。
(obj.func)(); // 1 [object object]と表示される。
(obj.func , obj.func)(); // 2 [object Window]と表示される。
(obj.func = obj.func)(); // 3 [object Window]と表示される。

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2013/09/02 05:25:03

回答0件)

回答はまだありません

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません