のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:127,062,836人
昨日:no data人
今日:
最近の注目
人気の最安値情報

    私的良スレ書庫

    不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitter
    ログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。

    元スレ+ JavaScript の質問用スレッド vol.102 +

    JavaScript スレッド一覧へ / JavaScript とは? / 携帯版 / dat(gz)で取得 / トップメニュー
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
    レスフィルター : (試験中)
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter
    351 : 煌芽木☆ひかる - 2012/08/07(火) 12:13:54.78 ID:??? (+60,+29,-5)
    >>324
    この類のミスはオナニーのやりすぎ。
    352 : Name_Not - 2012/08/07(火) 13:10:10.98 ID:??? (+87,+29,-36)
    >346
    が思いつかないとか言ってる奴はevalに頼りきってきた初心者か
    eval周りを研究したことのない初心者だな
    353 : Name_Not - 2012/08/07(火) 13:13:40.42 ID:??? (+16,-6,-13)
    evalと似たようなもんだな
    354 : Name_Not - 2012/08/07(火) 13:23:15.17 ID:??? (+47,+19,-13)
    出来るだけevalを使わないのが普通
    355 : Name_Not - 2012/08/07(火) 14:42:07.54 ID:??? (+55,+29,-31)
    少し前から煌芽木☆ひかるたいう人が定期的に現れては戯れ言を呟いてるが、この人はなにをしたいんだろ
    356 : Name_Not - 2012/08/07(火) 17:39:33.89 ID:mb8NOpTJ (+44,+29,-95)
    >>352
    まあいいじゃん、質問スレだし
    オブジェクトと、オブジェクトの名前と、その名前の文字列、でわちゃわちゃするのは
    初心者の頃ならよくあることだし

    JSでのオブジェクトの扱い方、書き方についての
    わかりやすい質問例だったと思うな
    357 : Name_Not - 2012/08/07(火) 20:28:35.40 ID:??? (+56,+28,+0)
    >>350
    オナニーのやりすぎ
    358 : Name_Not - 2012/08/07(火) 21:18:34.59 ID:??? (+33,-30,-155)
    こんなコードってありですか?
    var Hoge = function(id, name) {
    this.id = id;
    this.name = name;
    };
    var arr = new Array();
    arr[0] = new Hoge(1, "yamada");
    arr[1] = new Hoge(2, "suzuki");

    for (var i=0; i<arr.length, i++) {
    alert(arr[i].name);
    }
    359 : Name_Not - 2012/08/07(火) 21:30:53.28 ID:mb8NOpTJ (+27,+29,-8)
    とくに問題はないと思うが
    newを使うな学派の人には怒られるかもしれない
    360 : Name_Not - 2012/08/07(火) 22:18:05.57 ID:??? (+52,+29,+0)
    そうですか。ありがほー
    361 : 334 - 2012/08/07(火) 23:38:41.94 ID:lpHybuKC (+65,+29,-23)
    原因がわかりました
    文字列に改行が入っていると、駄目なようです

    納得行かないけど、何か対策を考えます
    362 : Name_Not - 2012/08/08(水) 01:35:53.10 ID:??? (+57,+29,-21)
    開業型の問題だろ
    エディタも使いこなせない奴はくるな
    363 : Name_Not - 2012/08/08(水) 01:46:25.01 ID:??? (+65,+29,-4)
    >>361
    納得いかないも何も仕様だからwww
    364 : Name_Not - 2012/08/08(水) 02:44:14.94 ID:dorC4SqZ (+1,+11,-12)
    エディタは関係ないだろ
    365 : Name_Not - 2012/08/08(水) 12:31:30.79 ID:??? (+48,+25,-3)
    エヂタで外業型指定できるぢゃん
    366 : Name_Not - 2012/08/08(水) 12:41:31.41 ID:??? (+57,+29,-11)
    いやー
    日系ソフトウェア読んだらJavaScript初心者を
    脱出した気分だ
    367 : Name_Not - 2012/08/08(水) 13:35:23.75 ID:??? (+52,+29,-5)
    それ気分だけだから注意な
    368 : Name_Not - 2012/08/08(水) 13:38:39.76 ID:??? (+57,+29,-4)
    ドラゴン桜読んで東大に近くなった気分がするのと同じだな
    369 : Name_Not - 2012/08/08(水) 13:40:06.68 ID:??? (+57,+29,-6)
    あんなJavaScriptの根幹を解説してるもの見たこと無い。
    すばらしすぎる。
    370 : Name_Not - 2012/08/08(水) 13:47:04.33 ID:??? (+57,+29,+0)
    371 : Name_Not - 2012/08/08(水) 13:48:53.10 ID:??? (+63,+30,-43)
    まずはアレを読んで其の後実践で色々な壁にぶち当たって乗り越えて初心者脱出するのが一番

    ってのが理想なんだけど、最近の若いモンはjQueryに頼りっぱなしでロクなバグ対策もできやしねぇ
    windowやdocumentぐらい覚えとけよ
    372 : Name_Not - 2012/08/08(水) 13:50:19.19 ID:??? (+57,+29,-2)
    初心者ってどれぐらいのレベルなのさ
    基準を教えてくれ
    373 : Name_Not - 2012/08/08(水) 13:53:05.02 ID:??? (+0,-28,-36)
    初心者はグローバル変数とグローバル関数で
    いわゆるC言語風の書き方をする人のことです。
    374 : Name_Not - 2012/08/08(水) 13:54:41.18 ID:??? (+57,+29,-4)
    じゃあ俺は中級者ぐらいかな
    よかったよかった
    375 : Name_Not - 2012/08/08(水) 13:55:57.77 ID:??? (+52,+24,-5)
    俺はC++風の書き方をするから、上級者だな
    376 : Name_Not - 2012/08/08(水) 13:59:36.98 ID:??? (+3,-30,-36)
    XMLHTTPrequestのonreadystatechangeに外部関数を指定した場合、
    XMLHTTPrequestのインスタンスをグローバル変数にしたら多重通信が出来なくなるらしいんですけどマジですか?
    377 : Name_Not - 2012/08/08(水) 14:01:41.03 ID:??? (+28,+10,-3)
    試せば?
    378 : Name_Not - 2012/08/08(水) 14:03:10.87 ID:??? (+50,+27,-2)
    携帯だから試せません
    379 : Name_Not - 2012/08/08(水) 14:04:31.18 ID:??? (+54,+27,+0)
    >>358が上級者です。
    380 : Name_Not - 2012/08/08(水) 14:09:02.48 ID:??? (-24,-30,-224)
    質問を変えます。

    function aho(){

    var http;

    ~この辺でXMLHTTPREQUESTの初期化~

    http.onreadystatechange = function(){

    alert(http.responseText);

    }


    }

    こんなコードがあったとします。

    onreadystatechangeに指定した関数内のhttpという変数は
    aho関数内だけのローカル変数です。

    Ajaxって非同期通信が普通だから、基本的にaho関数を実行し終わった後に応答が帰ってくると思うんですが、
    なんで応答が返ってきたときにまだhttpという変数にアクセスできるんですか?

    aho関数自体の実行が終わってるはずなのでhttpというローカル変数は消滅してると思ったんですが違いますか?
    381 : Name_Not - 2012/08/08(水) 14:15:43.18 ID:??? (+57,+29,-21)
    これは良い質問だ。上級者にしか回答できそうにない。
    382 : Name_Not - 2012/08/08(水) 14:24:14.99 ID:??? (+57,+29,-19)
    これは良い質問だ。エスパーにしか回答できそうにない。
    383 : Name_Not - 2012/08/08(水) 14:26:53.68 ID:??? (+57,+29,-23)
    実行が終わっても参照が残ってる場合は解放されないので使える

    で合ってる?
    384 : Name_Not - 2012/08/08(水) 14:27:28.14 ID:??? (+57,+29,-5)
    参照が残ってるとどうやって判断するの?
    386 : Name_Not - 2012/08/08(水) 14:29:27.14 ID:??? (+36,+4,-14)
    じゃあ変数httpは消滅することがないということね
    387 : Name_Not - 2012/08/08(水) 14:43:21.91 ID:??? (+0,-29,-33)
    >>385
    でもaho関数自体は終わってますよね?
    じゃあ>>386の方が言ってるように、変数httpは消滅することがないってことですか?

    またaho関数を2回実行したら変数httpは上書きされるんですか?
    388 : Name_Not - 2012/08/08(水) 14:45:22.58 ID:??? (+4,-29,-17)
    httpはaho関数内のローカル変数だから上書きはないっしょ
    389 : Name_Not - 2012/08/08(水) 14:48:38.31 ID:??? (+37,-29,-93)
    >>388
    つまり、ローカル変数だけど消滅することがない特殊なケースってことですかね。

    じゃあonreadystatechangeに外部関数を指定する場合はどうやって書くんでしょうか?
    その外部関数に変数httpって渡せますか?
    また渡した場合、応答が返ってきたときもその変数httpは消滅してませんか?
    390 : Name_Not - 2012/08/08(水) 14:52:14.20 ID:??? (+2,-25,-34)
    関数もオブジェクトだからプロパティにhttpを持たせればいいんだよ
    きっと。日系ソフトウェアを読んだから間違いない。
    391 : 煌芽木☆彡 - 2012/08/08(水) 14:52:15.44 ID:??? (+96,+29,-26)
    >>389
    関数の実行コンテキストの概念を知らないだけ。
    関数の呼び出しごとにスコープチェインが作られる。
    392 : Name_Not - 2012/08/08(水) 14:58:10.80 ID:??? (+57,+29,-17)
    スコープチェインググってきたけどなんだこれ
    JavaScriptヤバイ
    393 : Name_Not - 2012/08/08(水) 14:58:17.92 ID:??? (+80,+29,-2)
    >>391
    へ~そんなのがあるんですね。
    勉強になりました
    ありがとうございます。
    394 : think49 - 2012/08/08(水) 15:09:16.41 ID:??? (+91,-30,-98)
    >>361
    > 文字列に改行が入っていると、駄目なようです
    状況がよくわかりませんが、

    "Java
    Script"

    のように書いているのなら ECMAScript 違反です。
    http://www2u.biglobe.ne.jp/~oz-07ams/prog/ecma262r3/7_Lexical_Conventions.html#StringLiteral

    ["Java",
    "Script"].join("\r\n");

    のように書くとか工夫してください。
    395 : 393 - 2012/08/08(水) 15:17:49.91 ID:QkErR/fa (+34,+29,-25)
    スコープチェインでググってたらクローじゃとかもあって非常に勉強になりました。
    完璧に理解できたか不安ですがとにかくありがとうございました
    396 : think49 - 2012/08/08(水) 15:24:59.41 ID:??? (+29,-30,-80)
    >>395
    一応、この辺も参考に。
    http://www.m-bsys.com/knowledge/jscript-gc
    メモリ開放タイミングは ECMAScript 規定にありませんが、現在のブラウザはGCで実装していると思います。
    GCがメモリ開放するタイミングは「該当変数が使われなくなったとき」であって「関数実行終了時」とは限りません。
    ただし、>>380では循環参照が形成されるので使われなくなったタイミングで明示的に
    http = http.onreadystatechange = null;
    を実行するのは良い習慣だと思います。(IE6SP2- ではメモリリークパターンに該当していました)
    397 : think49 - 2012/08/08(水) 15:27:58.76 ID:??? (+4,-30,-34)
    失礼。>>396を訂正します。
    通常は

    http = http.onreadystatechange = null;

    でいいのですが、IE6SP2- では上記で開放されないバグがありました。
    バグを回避するには以下のようにします。

    http.onreadystatechange = new Function;
    398 : Name_Not - 2012/08/08(水) 15:31:27.90 ID:QkErR/fa (+31,+29,-6)
    >>396-397
    詳しくありがとうございます。
    IE6はもう見捨ててますが一応覚えときます。
    上級者ですねぇ
    399 : Name_Not - 2012/08/08(水) 15:43:48.79 ID:??? (+50,+29,-5)
    後はオナニーを我慢できればいいんだがなw
    400 : Name_Not - 2012/08/08(水) 16:24:31.96 ID:??? (+4,-29,-2)
    "Java \
    Script"

    これじゃ駄目なんだっけ?
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / JavaScript スレッド一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

    類似してるかもしれないスレッド


    トップメニューへ / →のくす牧場書庫について