スポンサーサイト

2014.01.27 Monday

一定期間更新がないため広告を表示しています

  • -
  • -
  • -

javascript入門

2011.02.07 Monday

javascriptを勉強し始めて(初プログラミング)思ったのですが、
まずオブジェクト指向というものの理解に大変苦しみまして、
いまだ理解できず。それとprototypeってのも難しい。。。
しかしjavascriptのサイトなんかみてると
javascriptはオブジェクト指向です!!
みたいな記載が最初の方にあるのでとっても遠い存在に感じつつ。

どうにか少しでも理解しよう!本を一冊買おう!
と本屋に行き目に入った入門書を何も考えずに購入。
アマゾンでもなかなか微妙な評判。
確かにこれ難しい。プログラミングの全くの初心者の私には何度読んでも
理解できませんでした。。。
が、しかしこれがプログラミング、
みんなこれを10日で理解してしまうのか、
切ない気持ちになりつつもまぁ頑張れました。

今思えばオブジェクト指向とかprototypeとかって
きっととても便利な部分かつ核になってくるのかもしれませんが、
正直ちょっとしたDHTMLみたいなのには、
はっきり言って必要ないんでない??
その辺自分ほぼ理解していませんが、、、。
イベントごとに関数並べて、グローバル変数並べて、prototypeに
挑戦するならObject.prototypeが便利そうだし、、、、。


結論
jQueryを勉強しよう!!

まず無名関数とfunction文の違いなんてあんまり考えてなかったのですが、、
無名関数を使うメリットは何ですか?
この疑問凄い同感!って思ってしまいまして。

確かにfunction文で名前付けるか、
無名関数を変数に代入するかでどっちにしても名前使うじゃん。

そんでちょっと検索して
javascript関数宣言の落とし穴
こちらのブログを見てなんだか難しいなぁと思いつつ考察してみました。

func();//func文
var func = function() {//無名関数を変数に代入
alert('無名func');
};

function func() {//function文
alert('func文');
};
func();//無名func
静的っつーのがピンっとこないのですが、
まぁfunction文は静的に解析されてグローバルオブジェクトか
callオブジェクトのプロパティに設定される。
だから定義前でも呼び出せるということにしておきました。

そんで無名関数は式なので代入時に定義される。
なんとなくわかるような。

そもそもなんで無名関数は無名なのかっつーところが
よくわからなかったのですが、無名関数は=の右側部分で
それを単に変数に代入する例をよく見かけるだけと。
なので無名関数は
変数に入れてもよし(変数名は必要だが)、
頭に(つけて即実行してもよし(これだと名前必要なし)、
その他無名関数のメリットは
関数の引数に使い捨て無名関数を入れる場合(高階関数、コールバック関数)や
(function() {})()や
変数に無名関数を代入する場合(クラス定義、オブジェクトのメソッド定義)など。
これはfunction文ではできないと。
まぁ万能選手ということで納得しました。

それと調べていたら無名コンストラクタってのもでてきましたが
これは何かメリットがあるのでしょうか???
あまり熱く語ってる方がいらっしゃらなかったので忘れます。

それともうひとつ恥ずかしながらしらなかったのが
ifなどの構文内でfunction文は定義できない!!
これ知らないでつまづきました。

var exec = function() {
if(document.getElementById('id')) {
func1();//こっちはエラー
function func1() {
alert('func1');
};
function func2() {
alert('func2');
};
func1();//こっちはOKでした
};
};

こんな書き方するのかしないのかわかりませんが、
通常だと定義前でも呼べたfunction文が
firefoxで構文内だとエラーになりますた。
ちなみに定義後は呼べました。

そこでまた無名関数はどこでも定義OKというこで
var exec = function() {
if(document.getElementById('id')) {
(function() {
func1();//エラーなし
function func1() {
alert('func1');
};
function func2() {
alert('func2');
};
func1();
})();
};
};
とりあえずこんな感じで回避。
まぁ無名関数はメリットが沢山ということで納得してみました。

参考
javascriotの関数をマスターしよう

tablewidth px fontsize px selectbox
color

EX.

借方勘定科目金額借方勘定科目金額摘要
1
00差 0

仕訳テーブル作成ツールです!大したことはできません!!仕訳例を記入してwriteおしてコード表示押してコピーしてどっかに張り付ければやよい風仕訳例の出来上がりです。。。

続きを読む >>

1

calendar

S M T W T F S
  12345
6789101112
13141516171819
20212223242526
2728     
<< February 2011 >>

profile

last entry:2013/06/10

selected entries

categories

archives

recent comment

search this site.

others