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

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

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

51 = :

いますぐラーメンが食べたいです
でもお金がないとお考えください

52 = :

>>46
単純な循環参照でメモリリークが起きるブラウザは今ないから気にしなくていいよ
jQuery本体で同じような書き方してるけどメモリリークが起きるのであれば
多くのサイトで起きることになるけどもちろんそんなことはないわけだしね

53 = :

>>52
jQueryは対策してるから問題が起きないだけ

54 = :

jQueryは循環参照対策はしてるが、無駄にクロージャを生産してるから書き方の参考にはならないと思う

55 = :

>>53
じゃあ対策しなければ今のブラウザでもメモリリークが起きるんだー?
>>39使って実際に起きる例書いてみて
僕にはできないなー

56 = :

循環参照でメモリリークするのは、リファレンスカウント式のGCの時だけで
それ以外のGCはルートオブジェクトから辿れないものはGCの対象になるはずだけど、
なんでリークするんだろ?しないよね?

57 = :

循環参照は現在のブラウザではメモリリークしないが、バグを誘発しやすいので出来るだけ回避する人もいる
分かりづらい上に影響範囲が広いので知らない人も多いようだけど
あと、無駄にクロージャを作るのはメモリ効率的に良くないので同様に避けるべき

58 = :

前スレ>>963

jQueryの該当コードはこんな感じだから
それで良さそうですね。

contents: function( elem ) {
return jQuery.nodeName( elem, "iframe" ) ?
elem.contentDocument || elem.contentWindow.document :
jQuery.merge( [], elem.childNodes );
}

59 = :

>>54
JavaScriptは名前が付いているかついていないかの違いはあるけど
すべての関数はクロージャーだよ。

60 = :

>>46
その例では循環参照しないよ。

理由は言わない。
なぜなら、何でもすぐ人に聞く人は成長しないぞ
だから。

61 = :

↑優越感に浸りたいだけのダメ回答

62 = :

>>60
×理由は言えない
○よくわからない

63 = :

>>61
いやいや、自分で考えることの大切さを
教えてるんだよ。

俺の言うことは正しいので、素直に聞け。
理由はググれ。

64 = :

まあ、確かに無名関数の外に listener を置けば循環参照しないな

(function(global){
 global.addEventListener('load', function (event) { console.log(event); }, false);
}(window));

これで循環参照する

65 = :

>>64
それもしてないよ。

何が何を参照して、何が何を参照しているか
ちゃんと言える?

そこに循環してるものなんて無いでしょ?

66 = :

>>65
いや循環してる。

理由は自分で考えろ。

67 = :

>>66
してないだろw

あれ? もしかして理由を聞きたいの?


何でもすぐ人に聞く人は成長しないぞw

68 = :

なぜか俺の発言を繰り返している奴がいるが、その言葉は自分で調べられるだけの情報が出ている時しか使わないぞ
この質問者は自分で考える気ゼロだから厳しくしたが、相手次第ではちゃんと教える

69 = :

↑優越感に浸りたいだけ

70 = :

>>67
循環してるから、理由は言わなくていい
本気で自分で考えることを望むならもう黙れ
相手を馬鹿にするのが目的なら去れ

71 = :

>>70
その言葉は自分で調べられるだけの情報が出ている時しか使わないように。

72 = :

>>70
循環してないから、理由は言わなくていい

とも言えるよな?

73 = :

質問で聞いてるのは、答えじゃなくて、
その答えの理由なんだがねぇ。

その理由を聞いてるのに、ぐぐれって
それ質問に答えてることにならないし。

まあ、教えるのが下手でも
別に2ちゃんねるは強制じゃないから
いいけどねw

74 = :

どちらの意見も説得力は同じぐらい。
どちらが正しいかわからない。

75 = :

あぁ、説得力は同じぐらいだね。

同じぐらい説得力が低いw

だってどちらも循環参照する・しない
とだけしか言ってないんだもの。

76 = :

循環参照は>>47で情報が出てるから自分で調べられるはず

77 = :

>>47よりも前に>>42
「何でもすぐ人に聞く人は成長しないぞ 」って言ってますがw

78 = :

要するにvar func = function() {・・・}って書いたら駄目ってことでしょ?
function func() {・・・}とかけと。

過去スレで出てたじゃん。わざわざ変数に入れるやつなんなの?
普通に名前つければいいじゃないって。

そういうことだよ。

79 = :

>>72
>>67に答えただけなんだが…
俺はおまえを怒らせるために「理由を聞きたい?」とは質問するような偏屈な奴じゃない

80 = :

怒ってるのは「何でもすぐ人に聞く人は成長しないぞ 」って言われた人だよ。

81 = :

>>77
循環参照というキーワードが出ていれば、ぐぐるのは基本だろ
最近の人はWeb検索すら出来ないのか

82 = :

このテキストを書くことしかできない掲示板で、俺なんぞがグダグダ説明するよりも
ポインタだけわたしてググってもらったほうが
わかりやすい説明のページがいっぱいある

と思っておググりくださいって書くことはあるな

84 = :

>>47
無名関数に関しての内容が無いので答えになってない
よって>>47は記事を読んでないのが分かる

85 = :

>>84
原理が理解できれば>>64も応用できるはずだけどね

86 = :

>>84
>>47を読んだが、普通に理解できたぞ

87 = :

>>78
とんでもなく見当違いの認識をしてるよ

88 = :

循環参照
クロージャー

89 = :

いやあ、2chも捨てたもんじゃないな
勉強になる。考えるきっかけができた。

90 = :

>>64は、
(function(global) {
global.addEventListener("load",function(event) {console.log(event);},false);
global = null;
}(window));
こうすれば古いIEで問題になる循環参照が解消されるってことか?

91 = :

>>90
その通りだけど、そもそもローカル変数を使わなければ循環参照しないよ

93 = :

循環参照は定期的に出る質問だからFAQに入れておくといいかもね

94 = :

>>91
解消されない。

95 = :

>>91の「ローカル変数を使わなければ」っていうのが
重要なヒントで、ローカル変数を使わないで
処理を記述するにはどうするか?を考えてみたこと有る?

それがメソッドチェーンにつながるんだよ。

96 = :

>>90-91
ローカル変数はスコープ抜けたら自動的にnullになるんだから
全く関係ないじゃん。なにしれっと嘘ついてるのさ。

循環参照はオブジェクトがお互いに相手を参照しているから
オブジェクトが消えない(参照カウンタ方式の場合)という問題であって

スコープが抜けたら参照が消える話とは別問題だぞ。

97 = :

>>96
おいおいおいおいwおまえクロージャーを理解できてないだろ?w
循環参照とか考える前にJavaScriptの仕様を勉強してこいよw

98 = :

JavaScript関係で話題になるときの循環参照でメモリリークっていうのは
通常のオブジェクト同士の循環参照の話じゃないんだ
そういうのはIE7以前でも普通にGCで回収される

99 = :

>>97
お前が勉強してこいってw

100 = :

「何でもすぐ人に聞く人は成長しないぞ」のやつか。
まず自分がちゃんと説明しろって話だな。


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

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


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