私的良スレ書庫
不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitterでログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。
元スレ+ JavaScript の質問用スレッド vol.120 +
JavaScript スレッド一覧へ / JavaScript とは? / 携帯版 / dat(gz)で取得 / トップメニューみんなの評価 :
レスフィルター : (試験中)
循環参照するって言ってる奴が、
循環参照しているという証拠を持ってくれば
いいだけの話だと思うがね。
なんだかんだ言い訳ばかりして最後には
証拠示せずに自分で考えろと言って逃げるだけだし。
循環参照しているという証拠を持ってくれば
いいだけの話だと思うがね。
なんだかんだ言い訳ばかりして最後には
証拠示せずに自分で考えろと言って逃げるだけだし。
> 通常のオブジェクト同士の循環参照の話じゃないんだ
なんかまた変なコト言い出してる・・・
なんかまた変なコト言い出してる・・・
説明じゃなくて、なんかツールかコード使って
循環参照しているって証拠出して。
循環参照しているって証拠出して。
そもそもまともな(参照カウンタ方式じゃない)GCを実装してるプログラミング言語は循環参照なんて問題にならんぞ
iOSとかが糞すぎるんだよ
そしてJavaScriptの場合に問題になるのは古いIEのバグみたいなもので
DOM要素とJavaScript側の要素が相互参照してるときにだけ
相互参照を検出して解放する仕組みが働かないってだけのことだ
iOSとかが糞すぎるんだよ
そしてJavaScriptの場合に問題になるのは古いIEのバグみたいなもので
DOM要素とJavaScript側の要素が相互参照してるときにだけ
相互参照を検出して解放する仕組みが働かないってだけのことだ
GCが流行りだした頃は、
自分でdeleteしないなんて!って言われたもんだ。
かってにdeleteされることが嫌で自分で明示的に
deleteするべきだって主張していた人もいた。
だが今は、GCに任せるのが主流となった。
循環参照も同じで、自分で明示的に循環を断ち切らなくても
どこからも参照されていなければ、自動的に消える。
だから明示的にdeleteするのと同じで、循環参照であっても
自動的にdeleteされるのだからGCに任せることに何の問題もない。
自分でdeleteしないなんて!って言われたもんだ。
かってにdeleteされることが嫌で自分で明示的に
deleteするべきだって主張していた人もいた。
だが今は、GCに任せるのが主流となった。
循環参照も同じで、自分で明示的に循環を断ち切らなくても
どこからも参照されていなければ、自動的に消える。
だから明示的にdeleteするのと同じで、循環参照であっても
自動的にdeleteされるのだからGCに任せることに何の問題もない。
JavaScriptでも循環参照なんて気にしなくていいよ
古いIEとか無視でいい
古いIEとか無視でいい
[['a', 'aa'], ['b', 'bb'], ['c', 'cc']]
のような多次元配列を作るにはどのようにすればいいのでしょうか?
ar = new Array();
aa = ['a', 'aa'];
bb = ['b', 'bb'];
cc = ['c', 'cc'];
ar.push(aa);
などでは実現できません
のような多次元配列を作るにはどのようにすればいいのでしょうか?
ar = new Array();
aa = ['a', 'aa'];
bb = ['b', 'bb'];
cc = ['c', 'cc'];
ar.push(aa);
などでは実現できません
> [['a', 'aa'], ['b', 'bb'], ['c', 'cc']]
> のような多次元配列を作るにはどのようにすればいいのでしょうか?
ar = [['a', 'aa'], ['b', 'bb'], ['c', 'cc']]
> のような多次元配列を作るにはどのようにすればいいのでしょうか?
ar = [['a', 'aa'], ['b', 'bb'], ['c', 'cc']]
>>108
var arr1 = [],
arr2 = [],
aa = ['a', 'aa'],
bb = ['b', 'bb'],
cc = ['c', 'cc'];
arr1.push(aa, bb, cc);
console.log(arr1); //[Array[2], Array[2], Array[2]]
arr2 = aa.concat(bb, cc);
console.log(arr2); //["a", "aa", "b", "bb", "c", "cc"]
var arr1 = [],
arr2 = [],
aa = ['a', 'aa'],
bb = ['b', 'bb'],
cc = ['c', 'cc'];
arr1.push(aa, bb, cc);
console.log(arr1); //[Array[2], Array[2], Array[2]]
arr2 = aa.concat(bb, cc);
console.log(arr2); //["a", "aa", "b", "bb", "c", "cc"]
俺はわかるけどお前は勉強不足だからわかってないとか文系みたいな主張はいらねえんだよ
相手を納得させたいのなら数字を出せ
相手を納得させたいのなら数字を出せ
>>90-91
いい加減なこと書くな
(function(global){
'use strict';
global.a = 100;
console.log(a);
global = null;
}(window));
console.log(window.a); // 100
いい加減なこと書くな
(function(global){
'use strict';
global.a = 100;
console.log(a);
global = null;
}(window));
console.log(window.a); // 100
循環参照の例が全部イベントハンドラ関連でどうでもいいだろ
イベントハンドラなんて、ずっと束縛され続けるんだから
普通、循環参照っていえば↓これ
var obj0 = { value: 0, next: null };
var obj1 = { value: 1, next: null };
obj0.next = obj1;
obj1.next = obj0;
console.log(obj0, obj1);
↓
{ value: 0, next: { value: 1, next: [Circular] } } { value: 1, next: { value: 0, next: [Circular] } }
ちゃんと[Circular]って認識してる
認識してなかったら、無限ループでハングアップする
イベントハンドラなんて、ずっと束縛され続けるんだから
普通、循環参照っていえば↓これ
var obj0 = { value: 0, next: null };
var obj1 = { value: 1, next: null };
obj0.next = obj1;
obj1.next = obj0;
console.log(obj0, obj1);
↓
{ value: 0, next: { value: 1, next: [Circular] } } { value: 1, next: { value: 0, next: [Circular] } }
ちゃんと[Circular]って認識してる
認識してなかったら、無限ループでハングアップする
問題になるのはページ遷移無しで動的にDOM要素を入れ替え続けるような
単一ページWebアプリとかの場合だよ
「古いIEにおけるDOM要素を含む循環参照によるメモリリークパターン」のことを
JavaScript厨が省略して「循環参照」と呼ぶから話がややっこしくなるんだよね
>>40みたいに
単一ページWebアプリとかの場合だよ
「古いIEにおけるDOM要素を含む循環参照によるメモリリークパターン」のことを
JavaScript厨が省略して「循環参照」と呼ぶから話がややっこしくなるんだよね
>>40みたいに
>>127
同じ循環参照でも意味が違うんだよ
循環参照については>>47と下記URLを参照すべし
http://msdn.microsoft.com/ja-jp/library/bb250448.aspx
同じ循環参照でも意味が違うんだよ
循環参照については>>47と下記URLを参照すべし
http://msdn.microsoft.com/ja-jp/library/bb250448.aspx
>>127みたいなのを循環参照っていうんでしょ?
>>124
> 問題になるのはページ遷移無しで動的にDOM要素を入れ替え続けるような
> 単一ページWebアプリとかの場合だよ
そういうアプリでは動的にDOM要素を削除するので
その時に循環参照は断ち切られる。
> 問題になるのはページ遷移無しで動的にDOM要素を入れ替え続けるような
> 単一ページWebアプリとかの場合だよ
そういうアプリでは動的にDOM要素を削除するので
その時に循環参照は断ち切られる。
>>132
> 古いIEでは、DOM要素がスクリプト要素と循環参照してると
ということなら、こういうコードは問題ないよね?
一見クロージャーを使っていて循環参照しているようだが(実際にしているが)
循環参照しているのは、DOM要素とスクリプトではなく、スクリプトとスクリプトである。
一旦addClickEventをかましてcallbacks変数に蓄えることで、
間接的にイベントハンドラを登録している。本当のイベントハンドラの登録はinit時の一回のみ。
function init() {
var e = document.getElementById('id');
e.attachEvent('onclick', onclick);
}
init();
var callbacks = [];
function onclick() {
for (var i = 0; i < i.length; i++) {
callbaks[i]();
}
}
function addClickEvent(callback) {
callbacks.push(callback);
}
(function main(global) {
global.addClickEvent(function() {console.log(global) }
})(window);
> 古いIEでは、DOM要素がスクリプト要素と循環参照してると
ということなら、こういうコードは問題ないよね?
一見クロージャーを使っていて循環参照しているようだが(実際にしているが)
循環参照しているのは、DOM要素とスクリプトではなく、スクリプトとスクリプトである。
一旦addClickEventをかましてcallbacks変数に蓄えることで、
間接的にイベントハンドラを登録している。本当のイベントハンドラの登録はinit時の一回のみ。
function init() {
var e = document.getElementById('id');
e.attachEvent('onclick', onclick);
}
init();
var callbacks = [];
function onclick() {
for (var i = 0; i < i.length; i++) {
callbaks[i]();
}
}
function addClickEvent(callback) {
callbacks.push(callback);
}
(function main(global) {
global.addClickEvent(function() {console.log(global) }
})(window);
バグを持ってる古いIEって具体的にバージョン何?
IE6以下なら今ならもう問題ないよな
IE6以下なら今ならもう問題ないよな
jQueryのバリデーションのライブラリ探してるんだけど、今は何が良いの?
exValidationっての見たけど開発が止まっているようだ
最後の更新が3年前
validation-Engineってのは最終は2ヶ月前らしいけど
日本語対応してるのであればやっぱこの2つのうちどっちかなのかな?
exValidationっての見たけど開発が止まっているようだ
最後の更新が3年前
validation-Engineってのは最終は2ヶ月前らしいけど
日本語対応してるのであればやっぱこの2つのうちどっちかなのかな?
懐かしい話題だったのでメモリリークパターンについてまとめました。
http://d.hatena.ne.jp/think49/20141005/1412514367
>>40,42 辺りの Function,prototype.call で循環参照を回避するパターンの答えにもなっているかと。
http://d.hatena.ne.jp/think49/20141005/1412514367
>>40,42 辺りの Function,prototype.call で循環参照を回避するパターンの答えにもなっているかと。
jsとdomで循環参照するとメモリリークするとか
そんな話はじめて聞いたって思ったらie6sp2でだけ起きるのか
そんな話はじめて聞いたって思ったらie6sp2でだけ起きるのか
http://d.hatena.ne.jp/babu_babu_baboo/20100417/1271465430
いわゆるクロージャを生成した時点で、関数 (innerFunc) は、変数 (e) を、
いつでも参照できるようになっている。なので循環参照が成立する。
これマジ!?
クロージャは外側の全ての変数のGCを止めるの?
いわゆるクロージャを生成した時点で、関数 (innerFunc) は、変数 (e) を、
いつでも参照できるようになっている。なので循環参照が成立する。
これマジ!?
クロージャは外側の全ての変数のGCを止めるの?
関数の中で使われている変数だけが保存されていると思ってたけど。
じゃあ関数を返り値にする場合はローカル変数にも気を遣わないといけないのかね
面倒くせーな
じゃあ関数を返り値にする場合はローカル変数にも気を遣わないといけないのかね
面倒くせーな
前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / JavaScript スレッド一覧へ
みんなの評価 : 類似してるかもしれないスレッド
- + JavaScript の質問用スレッド vol.124 + (1001) - [97%] - 2015/7/16 1:30
- + JavaScript の質問用スレッド vol.123 + (1002) - [97%] - 2015/4/27 23:30
- + JavaScript の質問用スレッド vol.125 + (1001) - [97%] - 2015/10/7 17:45
- + JavaScript の質問用スレッド vol.126 + (348) - [97%] - 2023/1/12 17:00
- + JavaScript の質問用スレッド vol.126 + (952) - [97%] - 2015/11/18 13:15
- + JavaScript の質問用スレッド vol.127 + (160) - [97%] - 2021/7/16 9:30
- + JavaScript の質問用スレッド vol.127 + (1001) - [97%] - 2016/2/4 0:15
- + JavaScript の質問用スレッド vol.123 + (966) - [97%] - 2020/10/20 2:30
- + JavaScript の質問用スレッド vol.128 + (1001) - [97%] - 2016/2/26 6:45
- + JavaScript の質問用スレッド vol.129 + (926) - [97%] - 2017/7/27 13:45
- + JavaScript の質問用スレッド vol.129 + (981) - [97%] - 2016/5/5 8:16
- + JavaScript の質問用スレッド vol.130 + (974) - [97%] - 2016/10/26 14:18
- + JavaScript の質問用スレッド vol.122 + (116) - [97%] - 2018/5/2 18:30
- + JavaScript の質問用スレッド vol.122 + (1004) - [97%] - 2015/2/14 4:45
- + JavaScript の質問用スレッド vol.121 + (1001) - [97%] - 2015/1/1 18:30
- + JavaScript の質問用スレッド vol.121 + (1001) - [97%] - 2022/11/29 16:30
- + JavaScript の質問用スレッド vol.130 + (1001) - [97%] - 2017/11/25 20:45
トップメニューへ / →のくす牧場書庫について