ようこそ!逆襲のニートブログへ

ブログ内検索

最近の記事

はてなブックマーク数

この日記のはてなブックマーク数

カテゴリー

月別アーカイブ

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

JavaScriptの解説ページ発見! その2

日経ITプロ JavaScript流オブジェクト指向プログラミングに挑戦!

JavaとJavaScriptの違いを知っておくと、自分の中の勘違いが払拭されますね。
とっても参考になるけど、JavaScriptって、なんだかまぎらわしい言語仕様になってんじゃないかな~。
単に私の飲み込みが悪いだけかもしれませんが(笑)

ポイント2
関数がオブジェクトのコンストラクタになる



クラスがないのにコンストラクタですか?
何かシックリ来ないな~。><

要するに「初期化」する機能を指し示して、コンストラクタと呼んでいるのかな?
=Javaでいうコンストラクタと、JavaScriptでいうコンストラクタが別ものなら、違う言葉で呼んでもらった方がいいかもしれない。

同じ言葉で別ものを指し示しているなら、不要な混乱の元になるんじゃないかな~と。…意味が理解できればいいけど。^^

先頭にあるDogという関数(function)が,Dogオブジェクトを生成するためのコンストラクタです。
一見,JavaScriptの単なる関数と全く同じに見えます。
そのとおり,これは関数にほかなりません。
JavaScriptの関数は実際にはオブジェクトとして扱われます。
まず理解してほしいのは「Dogという名前の関数を定義すると,それがDogというオブジェクトのコンストラクタになる」ということです。



ほお~。
関数=(オブジェクトの)コンストラクタ
ということになっていると。
ん~、まぁそういうもんだということで流しておきますか。

「オブジェクトを生成するためのコンストラクタ?」
「関数として定義したはずのDogにプロパティがあるの?」
「関数をプロパティに代入するとはどういうこと?」など,
JavaScript独特のオブジェクト指向にとまどう方もいるでしょう。



ハ~イ!

でもご安心ください。
関数がオブジェクトである」ということがわかればだんだん理解できるようになってきます。



\(^o^)/

JavaScriptのオブジェクトでは,プロパティは特に定義を必要としません。
代入を行った時点でプロパティが作成されます。
このため,オブジェクトのプロパティはいつでも好きなときに追加することが可能です。



オブジェクトに、メソッドとプロパティを追加するとき、プロパティは宣言無しにいきなり使える、追加できる仕組になってるんですね。

その代わり,そのオブジェクトの内部のみからアクセス可能なプロパティ(C++やJavaでいうところのプライベート変数)はJavaScriptでは実現できません。



プロパティの宣言がなくて、プロパティに対するアクセス制限もないと。
えーと、変数としてのプロパティのスコープ(アクセス可能な範囲)はどうなってんのかな?
…あ、スコープの話は関係ないか(笑)

改訂第4版 JavaScript ポケットリファレンス 改訂第4版 JavaScript ポケットリファレンス
古籏 一浩 (2006/10/18)
技術評論社
この商品の詳細を見る

関連記事

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバックURL:
http://gooddays1.blog37.fc2.com/tb.php/264-1c109b79

FC2Ad

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。