元スレ+ JavaScript の質問用スレッド vol.108 +
JavaScript覧 / PC版 /みんなの評価 :
751 = :
その真のクロージャとか言ってる実装は、GCの関係で使い物にならんだろうな
753 = :
>>747
>最近のエンジンは必要な変数しかコンテキストに付加しない
へーへー
var a = b = 0;
function f(){ alert(a); }
こうした時、f では b は使われない、みたいな感じでしょうか
754 = :
>>753
そのbは何だよw
755 = :
使わない変数を渡さないことでどんな不便があり得るの?
756 = :
ないんじゃね?
757 = :
じゃあ真のクロージャの意味ねーじゃん
759 = :
クロージャと動的スコープ変数は共存できるぞ
760 = :
http://twitter.com/kyo_ago/status/380143189547438080
あごっちが言ってるこれのサンプルを誰かください
762 = :
あああお察しください
763 = :
var a = 0;
var f = (function () {
var a = 10;
return function (c) { return eval(c); }
}());
console.log(f("a++;"));
console.log(f("a++;"));
console.log(f("a++;"));
console.log(f("a++;"));
764 = :
var a = 0, b = 5;
eval('var c = 10;');
var f = (function (code) {
var a = 20;
eval(code);
f.self = this;
return function (code) {
return eval(code);
}
}('var d = 30;'));
eval.call(f.self, 'var e = 40;');
console.log(f('++a;')); // 21
console.log(f('++b;')); // 6
console.log(f('++c;')); // 11
console.log(f('++d;')); // 31
console.log(f('++e;')); // 41
console.log(f('var f = 50;')); // undefined
console.log(f('++f;')); // NaN or ReferenceError
765 = :
ネストしている連想配列の指定キーの参照を得るにはどうしたらいいですか?
767 = :
>>765
連想配列のネストをたどるコードを書け
769 = :
えばる?いーばる?
771 = :
どうもサンプル数が少ない時の偏りだったようです
772 = :
しかし宣言と代入を分けた方が遅くなりそうなものですが、そうはならないのは何故ですか?
774 = :
>>755
インライン関数がエラーで止まった時に上位スコープの変数確認できないから困る、
775 = :
例えばこういうケースだとデバッガからaは確認できるけどbはできない
function test1() {
var a = 1, b = 2;
var f = function () {
throw 'test';
a;
}
console.dir(f);
f();
}
test1();
----console----
<function scope>
|
Closure
|
a: 1
776 = :
ちなみにこれだとこうなる
function test2() {
var a = 1, b = 2;
var f = function () {
throw 'test';
eval('');
}
console.dir(f);
f();
}
test2();
----console----
<function scope>
|
Closure
|
a: 1
arguments: Arguments[0]
b: 2
f: function () {
777 = :
いやおまえそれGoogle Chromeの開発ツールの機能だろw
Firebugとかじゃそもそもconsole.dir(f)からClosureとか辿れないし、
aとbの中身も見たいならconsole.log(a,b)しとけよw
778 = :
表示されるか否かでデバッグのしやすさが段違いなんだが
デバッグしたこと無いのか?
779 = :
デバッグ便利ですとか言われても余分な参照をクロージャにずっと引きずられたら困る
GCとか意識したコード書いたことないの?
780 = :
>>777
分かってもらえなかったか……
console.dirはデバッガ使ったことない人でも表示がわかりやすいように入れただけで、
あってもなくてもどうでもいい部分なんだよ…
エラーで止まる設定にしたるとき
いざエラーが起きても最適化のせいで満足に状況を調べられないから困るってこと
あとChromeのデバッガはただV8のAPI叩いてるだけだからね
このことはV8コミュに何度もissueが挙がってる有名な問題なんだよ
でも根本的な仕組みの問題だから修正するのは難しい
まあ踏み込んだ話もどうでもよくて
言いたかったことはこれね>>747
781 = :
本末転倒だな
782 = :
最適化の問題じゃないよ?
参照が切れた変数をデバッグのためにずっと維持しておけってこと?
783 = :
別にこれが良いとか悪いとか言いたいんじゃなくて
流れに沿った豆知識を書きたかっただけだからもう気にしないで
784 = :
真のクロージャとか妙なこと言い出すからだろ
785 = :
別にそこ突っ込むとこじゃないでしょ
対比のための強調語として「真の~」って書きたくなるものでしょ
そのくらい気持ちを組んでよ
786 = :
対比のための強調語に「真の~」なんて使うやつは真の馬鹿だよ
787 = :
真の~なんていう言葉は、真にそれ以外が偽者な場合か、
そうではないけどあえて突っ込んでもらうために使うかどっちかにしとけよ。
紛らわしい使い方すんな。
788 = :
var idname = "v6";
var a1 = document.getElementById(idname);
var a2 = document.getElementById(idname);
var a3 = document.getElementById(idname);
var a4 = document.getElementById(idname);
var i1 = setInterval(function(){a1.click();}, 1000);
var i2 = setInterval(function(){a2.click();}, 1000);
var i3 = setInterval(function(){a3.click();}, 1000);
var i4 = setInterval(function(){a4.click();}, 1000);
同じ要素を複数のintervalで自動クリックするやつなんですけど
ここでは4つですが数は2個以上を想定してください
これを修正してください
789 = :
>786-787
アスペ乙
790 = :
>>788
日本語が意味不明
791 = :
>>788
var idname = "v6";
var elm = document.getElementById(idname);
for (var i = 0, ivid = []; i < 4; ++i) {
ivid[i] = setInterval(function () { elm.click(); }, 1000);
}
793 = :
エスパーだが1秒ごとにクリックさせたいんだろう
794 = :
同じくエスパーだが
たぶん一定間隔じゃなくある程度ランダムな間隔でクリックしたいのだろう
796 = :
後で止める仕組みが必要なのかどうかも問題だ
797 = :
元ソースから察するに要らないだろ
・i1、i2、i3、......単ローカル変数が何個あるか分からない
こんなもの使えない、意味もなくつけてるだけ
・精々数秒間程度、そもそもキャンセルがいることは稀
798 = :
エスパーだが何らかのゲームの自動操作を行いたいんだろう
799 = :
1つのintervalで1秒1クリックさせたいんですよ
そこでマルチスレッドぽく n数の分だけintervalを生成してそれぞれでクリックさせたいんですよ
さっきのコードの場合だとマルチスレッドで1秒間に4回くりっくすることになります
800 = :
>>799
残念ながらJavaScriptでは、タイマーで呼び出される処理も含めて全部一つのスレッド上で実行される
類似してるかもしれないスレッド
- + JavaScript の質問用スレッド vol.118 + (1002) - [97%] - 2014/8/29 22:30
- + JavaScript の質問用スレッド vol.105 + (1001) - [97%] - 2013/5/20 4:45
- + JavaScript の質問用スレッド vol.128 + (1001) - [97%] - 2016/2/26 6:45
- + JavaScript の質問用スレッド vol.107 + (1001) - [97%] - 2013/9/7 10:16
- + JavaScript の質問用スレッド vol.138 + (1004) - [97%] - 2019/4/20 23:45
- + JavaScript の質問用スレッド vol.106 + (1001) - [97%] - 2013/7/20 9:30
- + JavaScript の質問用スレッド vol.109 + (1001) - [97%] - 2013/10/7 13:16
- + JavaScript の質問用スレッド vol.104 + (1001) - [97%] - 2013/1/28 4:00
- + JavaScript の質問用スレッド vol.103 + (1001) - [97%] - 2012/11/9 15:30
- + JavaScript の質問用スレッド vol.102 + (1001) - [97%] - 2012/9/11 17: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
- + JavaScript の質問用スレッド vol.124 + (1001) - [95%] - 2015/7/16 1:30
- + JavaScript の質問用スレッド vol.123 + (1002) - [95%] - 2015/4/27 23:30
- + JavaScript の質問用スレッド vol.123 + (966) - [95%] - 2020/10/20 2:30
トップメニューへ / →のくす牧場書庫について