ゲームをプログラミングしながら、私は1日間違えてこの出くわし:JavaScriptを使用すると、配列と関数を1つの変数に格納できるのはなぜですか?
var foo = function() { alert("Hello, World!"); }
foo[0] = "Zero";
foo[1] = "One";
foo[2] = "Two";
foo[3] = "Three";
foo(); // Alerts "Hello, World!"
alert(foo[2]); // Alerts "Two"
なぜJavaScriptは、あなたがこれをやらせるのか?これは不具合ですか?
あなたの質問は、あなたの質問に対する私の最初の反応は、基本的に*なぜそうではないのか*私は*なぜ*質問するかもしれません。 –
配列の場合と同じように、関数上で同じプロパティやメソッドを呼び出さないためでしょうか? – Xynariz
関数はオブジェクトです。オブジェクトはプロパティを持つことができるので、 'foo.bar =" baz "'は合法です。Javascriptには、オブジェクトのプロパティにアクセスする2つの方法があります。ドット表記法とブラケット表記法です。後者を使用しています。 –