のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:127,062,836人
昨日: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
    651 : Name_Not - 2014/09/26(金) 19:52:59.96 ID:???.net (-2,-30,-28)
    無名関数に名前を付けるって

    var a = function(){
    652 : Name_Not - 2014/09/26(金) 19:53:28.76 ID:???.net (-2,-30,-29)
    無名関数に名前を付けるって

    var a = function(){
    };

    ってことだろ
    はい論破
    653 : Name_Not - 2014/09/26(金) 20:01:34.73 ID:???.net (+31,-30,-39)
    無名関数って名前が良くないよな

    var a = function hoge(){};

    これも無名関数だろ?
    654 : Name_Not - 2014/09/26(金) 20:03:54.98 ID:???.net (+10,-30,-142)
    >>647の言いたい事は↓これ
    addEventListener("click", function hoge(){
    ...
    removeEventListener("click, hoge); // ○
    });
    removeEventListener("click, hoge); // × hogeが見つからない

    2度呼ばせないようにする事には使える
    655 : Name_Not - 2014/09/26(金) 20:04:07.24 ID:???.net (+12,-10,+1)
    名前付き関数式だね
    656 : Name_Not - 2014/09/26(金) 20:12:27.03 ID:???.net (+39,-30,-137)
    >>654
    大体そうだけど、元のコードを尊重すると
    var func = function(obj){
    return function foobar(){
    console.log(obj);
    obj.removeEventListener('click', foobar);
    }
    };
    を想定してた

    あと
    (function me() {
     :
     :
     me();
    })();

    みたいな即時関数で再帰使いたい時に使わん?
    657 : Name_Not - 2014/09/26(金) 21:09:29.60 ID:???.net (+39,+16,+0)
    ありがとうございますできました
    658 : Name_Not - 2014/09/26(金) 22:06:01.42 ID:???.net (+97,+29,-14)
    >>653
    それは無名関数とはいわない

    >>656
    普通に使うよね
    659 : Name_Not - 2014/09/26(金) 22:13:45.24 ID:???.net (+105,+29,-52)
    >>658
    hogeは関数内部からしか参照できないんだから本質的には無名関数と変わりない
    つまり無名関数という言葉の方がおかしい
    はい論破
    660 : Name_Not - 2014/09/26(金) 22:24:57.54 ID:???.net (+71,+29,-3)
    >>659
    お前はそれでいいや

    他の人はググって確認しておくように
    661 : Name_Not - 2014/09/26(金) 22:33:49.72 ID:???.net (+40,-30,-95)
    addEventListener('click', a.func)
    こういう感じのオブジェクトの中に関数が入った?関数を指定するのはダメで
    addEventListener('click', func)
    って関数はOKっていうのをどこかで読んだんですが理由教えてください
    662 : Name_Not - 2014/09/26(金) 22:38:48.62 ID:???.net (+57,+29,-41)
    無名関数式を名前付き関数式にしてるわけだから「名前を付ける」という言葉は間違ってないな
    名前付き関数式の知名度はもう少しあがってもいい
    663 : Name_Not - 2014/09/26(金) 22:40:08.97 ID:???.net (+62,+29,-3)
    >>661
    駄目な理由はない
    駄目な理由をあなたが勘違いしてるとしか思えない
    664 : Name_Not - 2014/09/26(金) 22:58:11.27 ID:???.net (+3,-29,-21)
    >>661
    コンテキスト=thisが変わるからじゃないかな
    関数内でthisを使わないとか
    callやapplyでthisを明示的に指定する、などの方法で問題は回避できる
    665 : Name_Not - 2014/09/26(金) 22:59:41.62 ID:???.net (+57,+29,-12)
    JavaScriptで無名関数という言葉は使うべきじゃない
    なぜならそこでは無名性には大した意味はないから
    はい論破
    666 : Name_Not - 2014/09/26(金) 23:01:16.58 ID:???.net (+88,+29,-39)
    無名関数と言わず、単に関数式と言えばいい
    それに名前があろうがなかろうが、関数の外部には影響がないんだから
    667 : Name_Not - 2014/09/26(金) 23:22:32.88 ID:???.net (+52,+29,-1)
    すきにするがよい
    668 : Name_Not - 2014/09/26(金) 23:35:25.81 ID:???.net (+3,-30,-226)
    ■A
    var test = document.getElementById('test');
    var hoge = {};
    hoge.print = function(){
    console.log(this); // divを参照する
    };
    test.addEventListener('click', hoge.print, false);

    ■B
    var test = document.getElementById('test');
    var hoge = function(){
    console.log(this); // divを参照する
    };
    test.addEventListener('click', hoge, false);

    どっちも変わらなかった
    669 : Name_Not - 2014/09/26(金) 23:54:08.18 ID:???.net (-1,-29,-59)
    JavaScriptは単なる関数なのにthisにアクセス出来るけど、そのthisは呼び出す側の都合で何にでも設定出来る
    関数内でthisにアクセスする時はthisが何なのか気にする必要がある
    670 : Name_Not - 2014/09/27(土) 00:05:01.14 ID:???.net (+83,-30,-164)
    var test = document.getElementById('test');
    var hoge = {};
    hoge.print = function(){
    var _this = hoge.print.call(hoge);
    console.log(_this);
    };
    test.addEventListener('click', hoge.print, false);

    Uncaught RangeError: Maximum call stack size exceeded ってなりました
    どうやってthisをhogeにできますか?
    671 : Name_Not - 2014/09/27(土) 00:21:53.94 ID:???.net (-3,-29,-17)
    >>670
    handleEvent
    この質問は定期的に出てくるな
    672 : Name_Not - 2014/09/27(土) 00:25:50.21 ID:???.net (+96,+22,-1)
    >>666
    関数内部の質問に対して何を言ってるんだか
    673 : Name_Not - 2014/09/27(土) 01:28:26.62 ID:???.net (+107,+29,-6)
    >>672
    JavaScriptの本質についての話をしてるんだよ
    質問は関係ない
    674 : Name_Not - 2014/09/27(土) 01:32:54.97 ID:???.net (+77,+30,-100)
    >>673
    ああそう
    で、関数式に名前を付けるのと付けないので異なる処理をすることを説明するときにもひとくくりに関数式と呼ぶのかね?
    正式に言うなら「名前付き関数式」「無名関数式」でいいと思うがね
    あの文脈なら「無名関数に名前を付ける」で十分に意味が通じるし、関数式ではむしろ意味が通らない
    675 : Name_Not - 2014/09/27(土) 01:38:59.01 ID:KCamdbRG.net (+32,+29,-16)
    おすすめの参考書とか聞いても答えてくれるん?
    676 : Name_Not - 2014/09/27(土) 01:41:32.03 ID:???.net (+65,+29,-47)
    >>675
    特に制限はされてないと思うが
    参考書に求めるものが具体的が明示されており、その目的に沿う参考書を知っている人がいたなら答えてくれるかもしれない
    677 : Name_Not - 2014/09/27(土) 01:44:18.98 ID:???.net (+57,+29,-24)
    素直に知らないって言えばいいのに
    こいつらいっつも何がしたいかーとか何を求めているかーとかって言い訳するよな
    聞き飽きたはw
    678 : Name_Not - 2014/09/27(土) 01:48:09.78 ID:???.net (+57,+29,-33)
    顧客の希望を聞かずにいきなり自分のお勧めを紹介する人は信用できない
    判断基準が適当かつ恣意的にすぎる
    679 : Name_Not - 2014/09/27(土) 01:50:56.96 ID:???.net (+52,+29,-2)
    言い訳すんなっつってんだろw
    680 : Name_Not - 2014/09/27(土) 01:52:17.82 ID:???.net (+88,+29,-20)
    普遍的な価値基準があると本気で信じてるんだな
    馬鹿すぎるわw
    682 : Name_Not - 2014/09/27(土) 02:03:18.22 ID:???.net (+68,+29,-32)
    >>670
    thisはhogeになってるよw

    それ以前に他の場所、関数の戻り値とかの
    もっと初歩的な所が理解出来てないだけ。

    ブラウザのデバッガ機能のステップ実行とか
    使って動きを一行ずつ確認してみれ
    683 : Name_Not - 2014/09/27(土) 02:11:35.90 ID:???.net (+101,+29,-32)
    >>680
    お前は馬鹿の一つ覚えみたいに同じことばっかりいうよなw
    684 : Name_Not - 2014/09/27(土) 03:17:01.23 ID:???.net (+105,+29,-3)
    >>683
    理解力の低い人に対しては致し方ないな
    685 : Name_Not - 2014/09/27(土) 03:38:20.55 ID:???.net (+57,+29,-22)
    ライブラリを作る時にはこうしたら便利だよ的なことが書かれている本があれば教えて下さい
    686 : Name_Not - 2014/09/27(土) 03:56:01.44 ID:???.net (+57,+29,-16)
    JavaScriptパターンにそれっぽいことが書かれてるようなので
    再読してみます
    687 : Name_Not - 2014/09/27(土) 04:38:15.28 ID:???.net (+9,-30,-86)
    >>670
    呼び出し元の
    test.addEventListener('click', hoge.print, false);
    を変えないということならば
    hoge.print = function(){
    console.log(this);
    }.bind(hoge);
    こうだな
    688 : Name_Not - 2014/09/27(土) 05:06:13.55 ID:???.net (+69,+29,-6)
    >>670
    再起呼び出しが無限ループしてるよw
    そんでスタックオーバーフローしてる
    689 : Name_Not - 2014/09/27(土) 06:42:55.11 ID:???.net (+32,-30,-133)
    >>632
    悪意のあるスクリプトタグが追加されて、
    この悪意あるスクリプトは見えないiframeを追加し、RIG exploit kitをホスティングするWebサイトにリダイレクトする。
    最終的にはドライブバイダウンロードによりマルウェアが閲覧者のコンピューター上で実行されるという。


    ここ最近jQueryの公式にアクセスした奴は
    使ってるPCと、その間アクセスしたサーバー/システムのチェックとパスワードの変更をしておけよ
    690 : Name_Not - 2014/09/27(土) 07:26:44.73 ID:???.net (+82,+29,-3)
    >>684
    お前は同レベルってことに気づいてないのか・・・
    691 : Name_Not - 2014/09/27(土) 11:37:47.62 ID:???.net (+46,-30,-248)
    <div id="root">
    <div>
    aaaaaaa
    <p>bbbbbbbbbbbb</p>
    </div>
    <div>c</div>
    </div>

    var root = document.getElementById('root');
    root.addEventListener('click', function(e){
    console.log(this);
    console.log(e.target.innerHTML);
    console.log(e.target);
    console.log(e);
    }, false);

    #rootをgetElementByIdで取ってイベントリスナーでClickした時に
    子要素のどこをクリックしても頂点の#rootが欲しいんですが
    e.targetとeをみても取れなさそうでした
    どうやれば#rootにたどれますか?
    692 : Name_Not - 2014/09/27(土) 11:45:40.16 ID:???.net (+73,+30,+0)
    693 : Name_Not - 2014/09/27(土) 12:09:38.06 ID:???.net (-1,-29,-25)
    Backbone.Routerは通信をフックする機能のようですが、
    通信先を書き換えることはできないんですか?
    694 : Name_Not - 2014/09/27(土) 12:45:30.44 ID:ha25ZVsE.net (+35,+27,-82)
    >>689
    ドライバって実行ファイルだろ?
    普通警告出るし、実行しなけりゃ問題ないんじゃないの?
    もしCDNのjqueryをこっそり改造して変数の内容をどこかに転送
    とかしてたら恐ろしい被害が出ただろうな
    695 : Name_Not - 2014/09/27(土) 12:49:46.05 ID:???.net (+29,-30,-99)
    >>692
    > On Internet Explorer 6 through 8, the event model is different.
    > Event listeners are attached with the non-standard element.attachEvent method.

    この文章が気になりました。

    IE8のサポート終了って2016年1月なんですよね。
    696 : Name_Not - 2014/09/27(土) 12:53:53.53 ID:???.net (+21,-16,+0)
    >>695
    IE8てまだサポートしてたのか。
    697 : Name_Not - 2014/09/27(土) 13:08:07.35 ID:???.net (+5,-30,-124)
    >>696
    サポートどころかこんなデータもあるぐらいだよ。

    IE8 50ヶ月連続1位 - 4月ブラウザシェア 2014/05/07
    http://news.mynavi.jp/news/2014/05/07/066/

    http://marketshare.hitslink.com/browser-market-share.aspx?qprid=2&qpcustomd=0

    Internet Explorer 8.0 21.40%
    Internet Explorer 11.0 17.54%
    Chrome 36.0 11.05%
    Firefox 31 10.51%
    Internet Explorer 9.0 9.24%
    Internet Explorer 10.0 6.18%
    Internet Explorer 6.0 3.33%


    statcounterの方ではIE11の方が多いが、順位では5番目に利用者が多いブラウザ。
    http://gs.statcounter.com/#all-browser_version-ww-monthly-201308-201408
    698 : Name_Not - 2014/09/27(土) 13:46:46.82 ID:QhduZYQw.net (+24,+29,-59)
    サイトによっては、アクセス解析の結果、IE8が少なくないこともあるな

    あと残念なのが、ユーザではなく客が仕事場で使っているのがIE8だから
    って理由でそれに合わせることも少なくない
    699 : 691 - 2014/09/27(土) 14:07:33.44 ID:???.net (+6,-30,-61)
    >>695
    そもそも、IE8をサポートするなら addEventListener を使えないだろう
    (addEventListener 前提の質問だから考慮はしなかったが)
    IE8を考慮するならクロージャに閉じ込めたスコープで Function#call でも使えばいい
    700 : 690 - 2014/09/27(土) 14:13:23.50 ID:???.net (+11,-29,+0)
    >>692
    すいませんcurrentTargetがnullでした
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / JavaScript スレッド一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

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


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