私的良スレ書庫
不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitterでログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。
元スレ+ JavaScript の質問用スレッド vol.102 +
JavaScript スレッド一覧へ / JavaScript とは? / 携帯版 / dat(gz)で取得 / トップメニューみんなの評価 :
レスフィルター : (試験中)
>>324
この類のミスはオナニーのやりすぎ。
この類のミスはオナニーのやりすぎ。
少し前から煌芽木☆ひかるたいう人が定期的に現れては戯れ言を呟いてるが、この人はなにをしたいんだろ
>>352
まあいいじゃん、質問スレだし
オブジェクトと、オブジェクトの名前と、その名前の文字列、でわちゃわちゃするのは
初心者の頃ならよくあることだし
JSでのオブジェクトの扱い方、書き方についての
わかりやすい質問例だったと思うな
まあいいじゃん、質問スレだし
オブジェクトと、オブジェクトの名前と、その名前の文字列、でわちゃわちゃするのは
初心者の頃ならよくあることだし
JSでのオブジェクトの扱い方、書き方についての
わかりやすい質問例だったと思うな
>>350
オナニーのやりすぎ
オナニーのやりすぎ
こんなコードってありですか?
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);
}
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);
}
とくに問題はないと思うが
newを使うな学派の人には怒られるかもしれない
newを使うな学派の人には怒られるかもしれない
原因がわかりました
文字列に改行が入っていると、駄目なようです
納得行かないけど、何か対策を考えます
文字列に改行が入っていると、駄目なようです
納得行かないけど、何か対策を考えます
>>361
納得いかないも何も仕様だからwww
納得いかないも何も仕様だからwww
いやー
日系ソフトウェア読んだらJavaScript初心者を
脱出した気分だ
日系ソフトウェア読んだらJavaScript初心者を
脱出した気分だ
あんなJavaScriptの根幹を解説してるもの見たこと無い。
すばらしすぎる。
すばらしすぎる。
まずはアレを読んで其の後実践で色々な壁にぶち当たって乗り越えて初心者脱出するのが一番
ってのが理想なんだけど、最近の若いモンはjQueryに頼りっぱなしでロクなバグ対策もできやしねぇ
windowやdocumentぐらい覚えとけよ
ってのが理想なんだけど、最近の若いモンはjQueryに頼りっぱなしでロクなバグ対策もできやしねぇ
windowやdocumentぐらい覚えとけよ
初心者はグローバル変数とグローバル関数で
いわゆるC言語風の書き方をする人のことです。
いわゆるC言語風の書き方をする人のことです。
XMLHTTPrequestのonreadystatechangeに外部関数を指定した場合、
XMLHTTPrequestのインスタンスをグローバル変数にしたら多重通信が出来なくなるらしいんですけどマジですか?
XMLHTTPrequestのインスタンスをグローバル変数にしたら多重通信が出来なくなるらしいんですけどマジですか?
>>358が上級者です。
質問を変えます。
function aho(){
var http;
~この辺でXMLHTTPREQUESTの初期化~
http.onreadystatechange = function(){
alert(http.responseText);
}
}
こんなコードがあったとします。
onreadystatechangeに指定した関数内のhttpという変数は
aho関数内だけのローカル変数です。
Ajaxって非同期通信が普通だから、基本的にaho関数を実行し終わった後に応答が帰ってくると思うんですが、
なんで応答が返ってきたときにまだhttpという変数にアクセスできるんですか?
aho関数自体の実行が終わってるはずなのでhttpというローカル変数は消滅してると思ったんですが違いますか?
function aho(){
var http;
~この辺でXMLHTTPREQUESTの初期化~
http.onreadystatechange = function(){
alert(http.responseText);
}
}
こんなコードがあったとします。
onreadystatechangeに指定した関数内のhttpという変数は
aho関数内だけのローカル変数です。
Ajaxって非同期通信が普通だから、基本的にaho関数を実行し終わった後に応答が帰ってくると思うんですが、
なんで応答が返ってきたときにまだhttpという変数にアクセスできるんですか?
aho関数自体の実行が終わってるはずなのでhttpというローカル変数は消滅してると思ったんですが違いますか?
実行が終わっても参照が残ってる場合は解放されないので使える
で合ってる?
で合ってる?
>>388
つまり、ローカル変数だけど消滅することがない特殊なケースってことですかね。
じゃあonreadystatechangeに外部関数を指定する場合はどうやって書くんでしょうか?
その外部関数に変数httpって渡せますか?
また渡した場合、応答が返ってきたときもその変数httpは消滅してませんか?
つまり、ローカル変数だけど消滅することがない特殊なケースってことですかね。
じゃあonreadystatechangeに外部関数を指定する場合はどうやって書くんでしょうか?
その外部関数に変数httpって渡せますか?
また渡した場合、応答が返ってきたときもその変数httpは消滅してませんか?
関数もオブジェクトだからプロパティにhttpを持たせればいいんだよ
きっと。日系ソフトウェアを読んだから間違いない。
きっと。日系ソフトウェアを読んだから間違いない。
>>361
> 文字列に改行が入っていると、駄目なようです
状況がよくわかりませんが、
"Java
Script"
のように書いているのなら ECMAScript 違反です。
http://www2u.biglobe.ne.jp/~oz-07ams/prog/ecma262r3/7_Lexical_Conventions.html#StringLiteral
["Java",
"Script"].join("\r\n");
のように書くとか工夫してください。
> 文字列に改行が入っていると、駄目なようです
状況がよくわかりませんが、
"Java
Script"
のように書いているのなら ECMAScript 違反です。
http://www2u.biglobe.ne.jp/~oz-07ams/prog/ecma262r3/7_Lexical_Conventions.html#StringLiteral
["Java",
"Script"].join("\r\n");
のように書くとか工夫してください。
スコープチェインでググってたらクローじゃとかもあって非常に勉強になりました。
完璧に理解できたか不安ですがとにかくありがとうございました
完璧に理解できたか不安ですがとにかくありがとうございました
>>395
一応、この辺も参考に。
http://www.m-bsys.com/knowledge/jscript-gc
メモリ開放タイミングは ECMAScript 規定にありませんが、現在のブラウザはGCで実装していると思います。
GCがメモリ開放するタイミングは「該当変数が使われなくなったとき」であって「関数実行終了時」とは限りません。
ただし、>>380では循環参照が形成されるので使われなくなったタイミングで明示的に
http = http.onreadystatechange = null;
を実行するのは良い習慣だと思います。(IE6SP2- ではメモリリークパターンに該当していました)
一応、この辺も参考に。
http://www.m-bsys.com/knowledge/jscript-gc
メモリ開放タイミングは ECMAScript 規定にありませんが、現在のブラウザはGCで実装していると思います。
GCがメモリ開放するタイミングは「該当変数が使われなくなったとき」であって「関数実行終了時」とは限りません。
ただし、>>380では循環参照が形成されるので使われなくなったタイミングで明示的に
http = http.onreadystatechange = null;
を実行するのは良い習慣だと思います。(IE6SP2- ではメモリリークパターンに該当していました)
失礼。>>396を訂正します。
通常は
http = http.onreadystatechange = null;
でいいのですが、IE6SP2- では上記で開放されないバグがありました。
バグを回避するには以下のようにします。
http.onreadystatechange = new Function;
通常は
http = http.onreadystatechange = null;
でいいのですが、IE6SP2- では上記で開放されないバグがありました。
バグを回避するには以下のようにします。
http.onreadystatechange = new Function;
前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / JavaScript スレッド一覧へ
みんなの評価 : 類似してるかもしれないスレッド
- + JavaScript の質問用スレッド vol.132 + (1001) - [97%] - 2018/4/19 11:00
- + JavaScript の質問用スレッド vol.107 + (1001) - [97%] - 2013/9/7 10:16
- + JavaScript の質問用スレッド vol.122 + (1004) - [97%] - 2015/2/14 4:45
- + JavaScript の質問用スレッド vol.122 + (116) - [97%] - 2018/5/2 18:30
- + JavaScript の質問用スレッド vol.142 + (984) - [97%] - 2020/8/27 19:15
- + JavaScript の質問用スレッド vol.112 + (1001) - [97%] - 2013/11/27 16:46
- + JavaScript の質問用スレッド vol.108 + (1001) - [97%] - 2013/9/21 15:16
- + JavaScript の質問用スレッド vol.109 + (1001) - [97%] - 2013/10/7 13:16
- + JavaScript の質問用スレッド vol.106 + (1001) - [97%] - 2013/7/20 9:30
- + JavaScript の質問用スレッド vol.105 + (1001) - [97%] - 2013/5/20 4:45
- + JavaScript の質問用スレッド vol.104 + (1001) - [97%] - 2013/1/28 4:00
- + JavaScript の質問用スレッド vol.142 + (926) - [97%] - 2019/12/23 13:15
- + JavaScript の質問用スレッド vol.103 + (1001) - [97%] - 2012/11/9 15:30
- + JavaScript の質問用スレッド vol.101 + (1001) - [97%] - 2012/7/16 14:15
- + JavaScript の質問用スレッド vol.100 + (1001) - [97%] - 2012/6/13 22:46
- + JavaScript の質問用スレッド vol.120 + (1002) - [95%] - 2014/11/8 1:15
- + JavaScript の質問用スレッド vol.125 + (1001) - [95%] - 2015/10/7 17:45
トップメニューへ / →のくす牧場書庫について