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

私的良スレ書庫

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

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

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
454 : Name_Not - 2014/07/15(火) 12:33:04.05 ID:???.net (+70,+29,-19)
>>446
もはやどの意見に対しての論破なのかもわからん
455 : Name_Not - 2014/07/15(火) 12:40:02.23 ID:???.net (+57,+29,-34)
googlemapの解析の難易度から言えば
ミニファイによる難読性などは
もはや本質的ではないといえる
はい論破
456 : Name_Not - 2014/07/15(火) 12:49:27.46 ID:???.net (+52,+29,+0)
論破いいたいだけやろ
457 : Name_Not - 2014/07/15(火) 12:50:38.39 ID:???.net (+57,+29,-12)
複雑で大規模なコードであればあるほど変数名ないと読みづらいだろ
458 : Name_Not - 2014/07/15(火) 13:20:47.83 ID:???.net (+0,-27,-1)
難易度10000が難易度10500になる程度
459 : Name_Not - 2014/07/15(火) 13:38:15.67 ID:???.net (+62,+29,-25)
よくJavaScriptはソースが隠せないから怖くて仕事で使えないみたいな話しがあるが、
Javaは逆コンパイル出来る事を考えれば、難読化したJavaScriptの方が型情報が無い分
ソースを隠せてると言える
460 : Name_Not - 2014/07/15(火) 15:31:34.23 ID:???.net (+52,+29,-1)
読みにくいだけやろ
461 : Name_Not - 2014/07/15(火) 16:57:00.94 ID:???.net (+96,+29,-83)
ソースコードなんて難読化しようが圧縮化仕様がクライアントに渡る時点で全部漏れてるんだよ
そんなところに気を使うなら人様にミられてもいいコードを書けばいい
他人に見られると困るようなコードを書きたいならjavascriptは触るな
462 : Name_Not - 2014/07/15(火) 16:59:00.57 ID:???.net (+57,+29,-36)
そのコードについて一番詳しいのは自分
という状態を保っておけばパクラーが出てきても問題ない
463 : Name_Not - 2014/07/15(火) 17:08:39.89 ID:???.net (+70,+29,-11)
>>461
触るなとうのはJavaも含まれているのか?
JavaScriptよりもJavaの方が分かり易いソースを得る可能性は高いと思ってるけど
464 : Name_Not - 2014/07/15(火) 17:20:06.88 ID:???.net (+3,-30,-29)
onblurハンドラがセットされている要素をblur()をしたら、
onblurハンドラは、blur()以後のコードよりも先に実行されますか?
場合によってはblur()以後のコードの方が先に実行されることがあり得ますか?
465 : 410 - 2014/07/15(火) 19:09:13.66 ID:???.net (+104,+29,-96)
>>448
クラスなしのオブジェクト指向を理解したところで何になるわけ?
それオブジェクト指向じゃないし
言い方きついがJSでオブジェクト指向を理解するのはお前じゃ無理といっておく
466 : Name_Not - 2014/07/15(火) 19:57:42.71 ID:???.net (+125,+29,-25)
オブジェクト指向自体がオワコンだから、覚える必要なよ。
関数型言語が復権する。
467 : Name_Not - 2014/07/15(火) 20:53:39.00 ID:???.net (+111,+30,-54)
>>465
JavaScriptのオブジェクト指向にはクラスそのものは無いと読んだことがあります
もしそうなら「クラス」あるいは「クラスのようなもの」というイメージで理解してしまうと
JavaScriptでしかできないような書き方を否定してしまうようで、なんとなく避けたいです
468 : Name_Not - 2014/07/15(火) 22:05:45.82 ID:???.net (+70,+29,-13)
>>466
復権も何も、関数型言語が覇権を握った事なんてあったっけ?
469 : Name_Not - 2014/07/15(火) 23:29:47.55 ID:???.net (+47,+29,+0)
いいや無い
470 : Name_Not - 2014/07/15(火) 23:40:01.62 ID:GCy+oIyF.net (+40,+28,-1)
>>399はどこに消えたのか
471 : Name_Not - 2014/07/16(水) 01:02:14.67 ID:???.net (+50,+22,-4)
Cを関数型言語だと誤解してる人は少なからずいる。
472 : Name_Not - 2014/07/16(水) 01:42:52.64 ID:???.net (+75,+27,-49)
>>467
実際クラスベースっぽい書き方とprototypeベースっぽい書き方って大して変わらんよ
継承の仕方が違うだけで
どっちの書き方から覚えようともJavaScriptのオブジェクト指向がわかれば普通に両方書けるようになる
473 : Name_Not - 2014/07/16(水) 05:27:56.13 ID:???.net (+74,+29,-32)
>>466
関数型パラダイムとオブジェクト指向は
対立するものではなく共存するもの
両方知る必要がある
474 : Name_Not - 2014/07/16(水) 05:53:14.00 ID:???.net (+57,+29,-20)
オブジェクト指向はオワコンになったんじゃなくて常識になったんだよ
475 : Name_Not - 2014/07/16(水) 08:11:07.39 ID:???.net (+57,+29,-61)
JavaScriptはプロトタイプを使って結果的にオブジェクト指向言語と同じことを実現しているだけなので
「オブジェクト指向を覚える」という目的には適していない
476 : Name_Not - 2014/07/16(水) 13:33:19.06 ID:???.net (+31,-1,-137)
JavaScriptはPythonとかと全く同じオブジェクト指向言語とも言える
本来はclassとかのキーワードを導入して実装の詳細は隠すもんだが
JavaScriptはそれが剥き出しになってる(prototypeがそれ)

動的言語のクラスシステムがどう実装されているか勉強にはなったが
おかげでオレオレクラスシステムが氾濫するはめにもなった
477 : Name_Not - 2014/07/16(水) 14:38:19.49 ID:???.net (+3,-29,-143)
document.getElementByIdでDOM要素を変数に代入したあと
そのDOM要素をremoveしても、
変数の中にはDOM要素が入っています
もしDOM要素を持っている変数がある場合は、それも削除しないと
メモリは完全に解放されない、ということでしょうか?
478 : Name_Not - 2014/07/16(水) 14:48:38.04 ID:???.net (+43,+25,+0)
はい
479 : Name_Not - 2014/07/16(水) 15:06:37.45 ID:???.net (+28,+5,+1)
ありがとうございました
480 : Name_Not - 2014/07/17(木) 03:26:35.12 ID:???.net (+31,-30,-18)
function func(a){
this.a=a;
}
なぜこれで保存?できるんですか?
481 : Name_Not - 2014/07/17(木) 03:29:06.44 ID:???.net (+30,-30,+0)
new A();とすると、
Aと同名のコンストラクタ関数 Aが呼ばれるので、
その中に、そのクラスに特有の処理を書けばよい

function A(){
thisを使って、プロパティ・メソッドを作る
}

次に、Aのプロトタイプに、親クラスPを、newして設定する
これで、Aがnewされる時には同時に、Pの部分もnewされて、
Pクラスのコンストラクタ関数 Pが呼ばれる
A.prototype = new P();

A1{P1}, A2{P2}
オブジェクトA1の中にP1があり、A2の中にP2があるイメージ

つまり、オブジェクト指向のクラスは、
JSではコンストラクタ関数のこと


そんなに本格的なことを勉強したいのなら、
この本を読むのが速い

はじめてのJavaScript、秀和システム
掌田津耶乃(しょうだ つやの)、2013

オブジェクト指向、DOMについて、
各100ページの説明がある
482 : Name_Not - 2014/07/17(木) 03:43:43.73 ID:???.net (+32,+14,-2)
またかw
483 : Name_Not - 2014/07/17(木) 06:32:26.22 ID:???.net (+35,+4,+0)
>>481
もはやネガティブキャンペーン
484 : Name_Not - 2014/07/17(木) 10:40:13.63 ID:???.net (+79,+29,-5)
>>480
varなくても宣言できちゃうから、と返せば良いのだろうか
485 : Name_Not - 2014/07/17(木) 11:04:52.47 ID:???.net (+7,-30,-120)
>>481
> これで、Aがnewされる時には同時に、Pの部分もnewされて、
> Pクラスのコンストラクタ関数 Pが呼ばれる
> A.prototype = new P();
>
> A1{P1}, A2{P2}
> オブジェクトA1の中にP1があり、A2の中にP2があるイメージ

間違ってます
もういっかい勉強しなおしましょう
487 : Name_Not - 2014/07/17(木) 15:50:33.45 ID:???.net (+80,+29,-80)
イベントハンドラの中で
一連のイベント処理が終わってから実行される処理をセットしたい場合
どうやればいいですか?
たとえばclickハンドラの中で、その処理をセット
その後もイベントバブリングし、デフォルト処理もされる
その後、clickハンドラの中でセットした処理が実行される
という感じです
488 : Name_Not - 2014/07/17(木) 15:53:47.09 ID:???.net (+56,+28,-23)
setTimeoutでウェイトを持たせれば出来るとは思いますが
それだと処理速度依存になるので、
もっとスマートなやり方はできないかと
489 : Name_Not - 2014/07/17(木) 16:10:44.22 ID:???.net (+3,-29,-75)
setTimeoutで0を指定しても、イベント処理が終わった後に実行されました(chromeにて)
望ましい動作ですが、
これはJSにおけるデフォルトの動作なのでしょうか?
つまり、「イベント処理がすべて終わるまではタイマ割り込みは発生しない」ものなのでしょうか?
490 : Name_Not - 2014/07/17(木) 16:27:30.42 ID:???.net (+33,-29,-51)
http://jsbin.com/vifuzoru/1/edit

chrome/firefox/IEそれぞれの最新版では検証しても、
setTimeout0はイベント処理の後に実行されました。
関数の途中で割り込みが発生することはありませんが、
イベント処理全体もそのような形でガードされているのでしょうか・・?
491 : Name_Not - 2014/07/17(木) 17:08:34.33 ID:U4NDgl4I.net (+33,+29,-38)
>>487
前も同じ質問しませんでしたか?
イベントハンドラ関数内で処理リストを持っておき、自前で管理して下さい。

>>490
保証されません
492 : Name_Not - 2014/07/17(木) 18:12:50.41 ID:???.net (+86,+29,-105)
ありがとうございます
根拠は何でしょうか?
イベントキューにスタックが積まれて、
イベントループが順次処理する、
settimeoutはイベントキューの最後に追加する、
というような記事は見つかるのですが、
あるイベントが呼び出すイベントハンドラの系が、
イベントキューに単一タスクとして登録されるのか、そうでないのか
という情報が今のところ見つからなくて困ってます
根拠をご存知でしたら教えてください
493 : Name_Not - 2014/07/17(木) 18:18:12.07 ID:???.net (+57,+29,-9)
ん?
タイマーの方は構わず発火しちゃうんじゃないか?
494 : Name_Not - 2014/07/17(木) 18:36:39.51 ID:???.net (+62,+29,-41)
タイマーもイベントキューで実行されるようです
イベントキューに例えばクリックイベントが登録されるとすると、
そのイベントの処理が実行されている間は
イベントキューに何が積まれようがそもそも見られてもいないのでは
とも思うのです
495 : Name_Not - 2014/07/17(木) 18:57:49.09 ID:???.net (+57,+29,-9)
俺もそんな気がしたけど仕様ざっと見てもそこらへん書いてなかったし、
保証されてないのかな
496 : Name_Not - 2014/07/17(木) 20:32:03.00 ID:???.net (+72,+29,-61)
イベントキューの中ではタイマーもクリックもイベントという意味で同列で
FIFOでたんたんと実行されていく、と考えたら、
イベントハンドラの中でセットしたタイマーイベントがそのイベントが終わった後に実行されるのは
原理的に必定だと言えるのでは。
またハンドラ内でタイマー以外のイベントをtriggerした時にも、
あくまでイベントキューに積まれるだけで、実行はそのイベントが終わった後になるはず
497 : Name_Not - 2014/07/17(木) 20:37:26.54 ID:???.net (+57,+29,-12)
いま問題にしているのは、バブリングしていくときにバブリングフェイズ全体が一つのタスクなのか個々のハンドラ実行が一つのタスクなのかってことだろ
498 : Name_Not - 2014/07/17(木) 20:45:10.72 ID:???.net (+62,+29,-87)
その疑問を呈したのは自分ですが、
イベントキューというものの構造を考えると必然的にひとつのタスクになると思います
キューに積まれているのは各ハンドラへの呼び出しではなく、
クリックイベントだと思われますので。
現にイベントフェーズの中で遅い処理を書いても、
ハンドラ中で設定したsetTimeoutは必ずその後に実行されます
499 : Name_Not - 2014/07/17(木) 22:06:36.69 ID:kl3tLgIH.net (+78,+29,-18)
>>492
仕様に書かれていないからです。
最後に実行したいなら自前で順序を制御するのが最も確実であると思います。
500 : Name_Not - 2014/07/17(木) 22:07:04.94 ID:???.net (+35,-2,-5)
>>484
ということは実質外部変数と同じってことですか?
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / JavaScript スレッド一覧へ
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

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


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