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

私的良スレ書庫

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

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

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
701 : Name_Not - 2014/09/27(土) 14:20:24.05 ID:???.net (-2,-30,-56)
$('#root').on('click', function() {
console.log(this);
});

これじゃいかんの?
702 : Name_Not - 2014/09/27(土) 14:21:47.75 ID:???.net (+0,-29,-37)
>>700
再現できない
http://jsfiddle.net/qnz1o7uu/
addEventListener の typo とか他の原因を疑え
703 : Name_Not - 2014/09/27(土) 14:33:36.86 ID:???.net (+57,+29,-20)
前提となる対象ブラウザがないから後出しになる
以前のテンプレならテンプレ嫁で済んだのにな
704 : Name_Not - 2014/09/27(土) 15:01:16.57 ID:???.net (+57,+29,-12)
なんでJavaScriptのメソッドって
長いものばっかりなんだろうか?

誰が戦犯なん? Java?
705 : Name_Not - 2014/09/27(土) 15:13:32.24 ID:???.net (+76,+29,-34)
ショートコーディングの風潮はjQueryの功罪かな
706 : Name_Not - 2014/09/27(土) 15:57:21.91 ID:???.net (+37,+0,-31)
>>705
rubyとかpythonとかもjQueryのせいで
短いメソッドばかりになったの?
707 : Name_Not - 2014/09/27(土) 16:02:40.02 ID:ha25ZVsE.net (+22,+29,+0)
長くても分かりやすい方がいいじゃん
708 : Name_Not - 2014/09/27(土) 16:49:22.46 ID:???.net (-1,-29,-1)
function が長いから fn にしろって言ってるようなもんだわ
709 : Name_Not - 2014/09/27(土) 18:50:50.44 ID:???.net (+57,+29,-22)
ここ流れが早くて何番目で自分が質問したか分かんなくなった
710 : Name_Not - 2014/09/27(土) 21:02:31.15 ID:???.net (+52,+29,-2)
自分の質問内容ぐらい自己管理しろよ
711 : Name_Not - 2014/09/28(日) 01:28:29.41 ID:???.net (+3,-30,-59)
クラス作成で
function C_ball(F){
alert(F);
}
とするとエラーが出るのに
function C_ball(name){
alert(name);
}
だとエラーが出ませんでした
もしかしてFは予約後なのでしょうか?
712 : Name_Not - 2014/09/28(日) 04:24:22.60 ID:???.net (+39,-30,-85)
function hoge(){
function moge(){
foge();
}
function foge(){
console.log('foge');
}
return moge;
}

hoge()();

こうすると、moge経由で、
hogeの中で定義されているfogeが実行されます。
今まで意識していなかったのですが、
「関数の中から他の関数を呼ぶとクロージャになる」
と考えていいのでしょうか?
713 : Name_Not - 2014/09/28(日) 05:10:34.39 ID:???.net (+37,-24,-7)
その行が関数の中にない場合は
windowの代わりにthisって書いてもいいですか?
714 : Name_Not - 2014/09/28(日) 08:02:28.72 ID:???.net (+63,+30,+0)
715 : Name_Not - 2014/09/28(日) 13:11:10.54 ID:???.net (+5,-22,-60)
リファレンスには、いいか悪いかは書いていないようです
jshintに文句言われたので、windowと書くことにしました
716 : Name_Not - 2014/09/28(日) 14:45:24.67 ID:???.net (-11,-29,-1)
hint?
717 : Name_Not - 2014/09/28(日) 15:13:34.60 ID:???.net (-6,-29,-1)
jshintも知らない奴はモグリ
718 : Name_Not - 2014/09/28(日) 16:29:07.94 ID:???.net (+68,+30,-179)
>>712
JavaScriptのすべての関数はクロージャーだよ。
クロージャーになるんじゃなくて、最初から全てクロージャー

クロージャーが普通の言語しか使ったことがない人は
なにがクロージャーなのかよくわからないと思う。
クロージャーはあまりにも自然だからね。

クロージャーを知るには、クロージャーではないものを知るのがわかりやすい。
ということで、クロージャーがないJavaの例
Javaにはクロージャーはなく、似たようなものとしてラムダ式がある。

ラムダ式の変数のスコープ
http://www.ne.jp/asahi/hishidama/home/tech/java/lambda.html

ラムダ式は似たような形をしているがいろいろ制限があるよね?
JavaScriptの感覚だと、できそうなことができない。

この「できそうなこと」というのはコードを見てそう思うはず。
このコードをみた感じ、つまりコードの構造をみて、できそうだなと思ったことが
レキシカルスコープ(構文構造のみから決定できるため構文スコープ)という言葉の意味なんだ。
719 : Name_Not - 2014/09/28(日) 16:53:38.65 ID:???.net (+57,+29,-14)
クロージャーについて説明できる人いないでしょ
720 : Name_Not - 2014/09/28(日) 17:13:15.70 ID:???.net (+86,+29,-15)
ここにいるよ。
クロージャとは、関数が外のスコープに存在する変数の参照を保持し続けること。
はい論破
721 : Name_Not - 2014/09/28(日) 17:16:04.61 ID:???.net (+57,+29,-55)
関数オブジェクトは
外のスコープに存在するオブジェクトへの参照を
どこに持ってるんですか?
それを一覧で見たりできないんですか?
722 : Name_Not - 2014/09/28(日) 17:20:45.23 ID:???.net (+57,+18,-13)
>>720
中途半端な知識晒して論破てwwwwwwwww
723 : Name_Not - 2014/09/28(日) 17:21:56.23 ID:???.net (+3,-30,-68)
スコープチェーン?
スコープチェーンに残っている場合はGCされない、ということでしょうか?
だとしたら、
function hoge(){
var a = 100;
return function(){};
}
のような処理でも、aはGCされないまま残り続けるのでしょうか?
724 : Name_Not - 2014/09/28(日) 19:04:19.56 ID:???.net (+3,-30,-121)
chromeのデバッガで確認したところ

function hoge(){
var a = 100;
return function(){
};
}

だとfunction scopeは空でした

function hoge(){
var a = 100;
return function(){
return a*2;
};
}
だとfunction scopeにclosureがありました
やはり参照の有無によりクロージャになるかならないか決まるようです
725 : Name_Not - 2014/09/28(日) 19:45:20.87 ID:???.net (+28,+5,-15)
最適化の可能性は?
726 : Name_Not - 2014/09/28(日) 21:23:39.30 ID:???.net (+57,+29,-42)
使わない変数を残し続けるのは不自然なので
デフォルトで行われる合理化なのでは?
内部の挙動は分かりませんが
727 : Name_Not - 2014/09/28(日) 21:40:19.84 ID:???.net (-2,-30,-35)
namespaceの書き方って、var top = top || {}; 以外には存在しないんですか
top || {} ってどういう仕組で動いているんですか?
728 : Name_Not - 2014/09/28(日) 21:50:23.10 ID:???.net (+3,-29,-63)
namespaceの書き方なんてjsには存在しない。

そも、
>>var top = top || {};
が必ずしも正しいかは書くやつが自分で判断しなければならない。


>>top || {} ってどういう仕組で動いているんですか?
jsの論理演算は特殊というか、厳密ではないことを利用してるってだけだ。
http://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Operators/Logical_Operators
729 : Name_Not - 2014/09/29(月) 01:29:21.33 ID:???.net (+3,-30,-92)
window.eventと
window.onclick=click;
function click(e){//このeは同じeventオブジェクトですか?

}
730 : Name_Not - 2014/09/29(月) 02:00:37.74 ID:???.net (+62,-29,-63)
JavaScriptパターンを再読していますが
S級著者のステートフルJavaScriptと比べると、やはり文章の精度が劣りますね

ここでプロトタイプ連鎖を説明するのに使った __proto__ は
(たとえば Firefox など) いくつかの環境では提供されていますが、
JavaScriptは利用できません。

こういう悪文がわりと出てきます
731 : Name_Not - 2014/09/29(月) 02:03:55.79 ID:???.net (+28,-26,-21)
>>729
以前気になって調べたけど
基本的に同じで、
window.eventは古いブラウザでしか使えなかったと思う
732 : Name_Not - 2014/09/29(月) 02:07:05.75 ID:???.net (+79,+18,+2)
>>731
ありがとうございます
733 : Name_Not - 2014/09/29(月) 08:18:46.97 ID:???.net (+68,+29,-22)
>>732
同じだけど、書き方を工夫すれば使わなくて済むので基本的に使わない
734 : Name_Not - 2014/09/29(月) 09:41:42.72 ID:???.net (-1,-29,-28)
window.eventが使えるところではeには何も入ってこなかったりw
736 : Name_Not - 2014/09/29(月) 09:59:42.67 ID:???.net (+3,-30,-208)
ちなみに、window.eventと引数のeventは似ているが同じではない。

だからvar e = event || window.eventみたいに
どっちかを使うというコードを書いていると変な所でハマることになる。

jQueryのeventはこのどちらでもないjQuery.Eventという
W3C標準に準拠されたeventオブジェクトになっている。
737 : Name_Not - 2014/09/29(月) 13:43:05.77 ID:NyExuAYm.net (+22,+29,-12)
>>735
なつかしーなおい
738 : Name_Not - 2014/09/29(月) 15:27:27.32 ID:???.net (+57,+29,-15)
結局jquery使えば問題ないんだろ
はい論破
739 : Name_Not - 2014/09/29(月) 15:41:07.36 ID:???.net (+78,+17,+0)
>>730
原文読めアホ
740 : Name_Not - 2014/09/29(月) 15:46:36.03 ID:???.net (+68,+29,-11)
>>739
言いたいことは分かるし原文に当たるほどの文章じゃないから。
ディスりたいだけの頓馬乙
741 : Name_Not - 2014/09/29(月) 16:07:48.44 ID:???.net (+30,-30,-79)
親クラスのコンストラクタを呼び出すにはどうしたらいいですか?
this.__proto__.constructor
で呼べると思いますが、__proto__は使わない方がいいので悩みます
742 : Name_Not - 2014/09/29(月) 16:17:23.52 ID:???.net (+44,+13,-8)
>>741
なんかのライブラリ使ってみた?
そういうソースコード見ると役に立つよ。
743 : Name_Not - 2014/09/29(月) 16:20:49.47 ID:???.net (+7,-30,-69)
>>741
this.__proto__.constructor.call(this);は無限再帰になるよ
直接親のコンストラクタ関数をcallするのが手っ取り早い
superはES6のclass構文が実装されるまで待とう
744 : Name_Not - 2014/09/29(月) 16:54:47.32 ID:???.net (+66,+29,-14)
>>730
S級著者じゃないから悪文を書いてるという勘違いしてるあたり、技術書をほとんど読んだことない初心者でしょ?
746 : Name_Not - 2014/09/29(月) 17:31:41.01 ID:???.net (-11,-29,-70)
>>745
domでdivのテキストを取る
中のdivにidを付けて中のテキストを取得
配列にして中のテキストを削除

またはRangeを使う
749 : Name_Not - 2014/09/29(月) 18:07:54.12 ID:???.net (+57,+29,-56)
jQueryでさくっとかいて、
それを冗長に書きなおすのって流行ってるな。

jQueryをどうしても使えない会社は
このやり方をするしか無いのかな。
750 : Name_Not - 2014/09/29(月) 18:26:56.95 ID:???.net (+3,-30,+0)
>>735
> そして、attachEventで登録する関数にはeventオブジェクト引数がない。
そんな事はない。
attachEvent にはhandlerの第一引数にeventオブジェクトを渡す機能が実装されている。
Event Interface が DOMと完全な互換性はないのでクロスブラウザの為のコードが必要だが。

> その代わりにあるのがwindow.event。
window.eventは厳密に言えば代替にはならない。
グローバル空間でeventを拾っている為、負荷の高い処理をしてタイミングを違えると別のイベントを拾ってしまう。
その為、可能な限り使用を控えるべきだし、window.eventを使用しなければ書けないコードは少ないはずだ(少なくとも私は思いつかない)。
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / JavaScript スレッド一覧へ
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

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


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