JavaScriptを使い始めたころfunction ~の構文の意味がわからなかった
何がわからなかったかというと、function宣言で関数としても扱えるしオブジェクトの定義もできるという一見して矛盾しているように見える仕様があったからだ
当時、知っているオブジェクト指向の言語はJavaしかなく
"オブジェクトの定義ってClassありきなんじゃない?"
という、ありがちな誤解をしていた。
とほほをみても、ただfunctionオブジェクトが宣言できますとしか書いていないし。
弾さんのエントリーをみてJavascriptのfunction宣言がオブジェクトと関数、両方を含んでいる意味がなんとなくわかったような気がする
JavaScriptは当初、プログラム開発ではなくWebデザイナーさんをターゲットにした言語なはずだ
弾さんいわく
元々あるオブジェクトを使用して関数を作ってもらいそれを実行してもらえばよい。
GUIアプリケーションのイベント処理を記述するイメージになるだろうか
逆に、Webデザイナーさんに使ってもらえるオブジェクトを提供する場合、やはりある程度クラスベースの機能もほしい
JavaScriptのfunctionの二面性は、使う側(=webデザイナーさん)と開発者(=オブジェクトを提供する人)の両者を視野に入れたためではないだろうか?
・・・だとしても、functionに関数とオブジェクトという二つの意味を持たせるのは混乱する原因となり、あんまりな仕様だと個人的には思うのだけどね。
何がわからなかったかというと、function宣言で関数としても扱えるしオブジェクトの定義もできるという一見して矛盾しているように見える仕様があったからだ
当時、知っているオブジェクト指向の言語はJavaしかなく
"オブジェクトの定義ってClassありきなんじゃない?"
という、ありがちな誤解をしていた。
とほほをみても、ただfunctionオブジェクトが宣言できますとしか書いていないし。
弾さんのエントリーをみてJavascriptのfunction宣言がオブジェクトと関数、両方を含んでいる意味がなんとなくわかったような気がする
JavaScriptは当初、プログラム開発ではなくWebデザイナーさんをターゲットにした言語なはずだ
弾さんいわく
クラスは難しい
オブジェクトは簡単
だとすれば、Webデザイナーさんには難しいクラスの定義なんてことはさせるべきではないだろうオブジェクトは簡単
元々あるオブジェクトを使用して関数を作ってもらいそれを実行してもらえばよい。
GUIアプリケーションのイベント処理を記述するイメージになるだろうか
逆に、Webデザイナーさんに使ってもらえるオブジェクトを提供する場合、やはりある程度クラスベースの機能もほしい
JavaScriptのfunctionの二面性は、使う側(=webデザイナーさん)と開発者(=オブジェクトを提供する人)の両者を視野に入れたためではないだろうか?
・・・だとしても、functionに関数とオブジェクトという二つの意味を持たせるのは混乱する原因となり、あんまりな仕様だと個人的には思うのだけどね。