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

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

    JavaScript覧 / PC版 /
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter

    851 = :

    幅の差のまとめって言ったって、文字・フォントごとに全部違うわけで。
    これとかを参考に自分でコード書いてテーブルを作るのが早そう。
    もはやJSとは全く関係ないけど。
    http://dobon.net/vb/dotnet/graphics/measurestring.html

    854 = :

    innerHTMLのしっかりした仕様はHTML5でようやく定義されようとしてる
    http://www.whatwg.org/specs/web-apps/current-work/multipage/apis-in-html-documents.html#innerhtml

    以前はMSDNのドキュメントと
    http://msdn.microsoft.com/ja-jp/library/ms533897

    Mozillaのドキュメントぐらいしか、まとまった資料がなかった
    http://developer.mozilla.org/ja/DOM/element.innerHTML

    859 = :

    jQueryなら10msごとにキューから命令を取り出すからタイムラグがある

    865 = :

    call/applyは関係ないような
    862は無理でしょ

    867 :

    できないって言ってる人は初心者?
    document.getElementsByTagName("script")[n].innerText
    のmatch、sliceでできるじゃん

    868 = :

    >>867 を最高に罵ってやろうと思ったけどアホらしくて全文消した

    869 = :

    String.prototype.fuga=function(){ a="fuga" }

    870 = :

    >868
    いやいやJavaScriptみたいなネイティブから距離がある言語は、
    思いきったことをしないといけない時があるんだよ
    一見マヌケなようでも「できない」より「できる」方がいいでしょ?
    ある意味視野を広げたいいコードだと思うよ
    JavaScriptの特徴を活かしてるじゃん

    まあお前さんはこんなんよりよっぽどいいコードを書けるんだろうから
    文句言いたい気持ちはわかるよ

    871 = :

    質問者です
    >>867の発想には笑いました
    >>869質問の仕方が悪かったですごめんなさい
    >>865の言うように、どうやら無理そうですね

    873 = :

    なるほど。そういう方向だと、valueOfも書き換えた方が良いのかな
    しかし、コンテキスト変換が行われないような場合
    var pln= function(s){document.getElementById('stdout').innerHTML+=s+'<br/>';}
    var a = new String('hoge');
    pln(a);
    a.fuga();
    pln(a);
    こうすると、hogeのままです

    元々の質問の目的は、それが実現出来るか、よりも
    どういうコーディングするのが良いかなってのの探索だったので
    普通のやり方では無理そうってのがわかったので一応、満足です
    みなさんありがとうございました。

    874 = :

    いや出来てないしw
    一休さんかよw

    876 = :

    俺だったら普通にindexOfとかで>867みたいにやるけどな
    それしかやる方法がないのならそれが普通だろ
    だったら変に考えず使えばいいのに

    878 = :

    猫リンクに見えた。疲れてんのかな。

    879 = :

    >>876
    それだとa.fuga()で実行する必要性がないじゃん?
    change()とかでもいいんだし。あと、変数aっていう部分の特定が出来ない。
    change("a")とかするなら、>>867である必要はなくできる。

    880 = :

             し!     _  -── ‐-   、  , -─-、 -‐─_ノ
      活 噴    // ̄> ´  ̄    ̄  `ヽ  Y  ,  ´     )   噴 え
      火 火    L_ /                /        ヽ  火  |
      山 が    / '                '           i  !? マ
      ま 許    /                 /           く    ジ
      で さ    l           ,ィ/!    /    /l/!,l     /厶,
      だ れ   i   ,.lrH‐|'|     /‐!-Lハ_  l    /-!'|/l   /`'メ、_iヽ
      よ る   l  | |_|_|_|/|    / /__!__ |/!トi   i/    レ!/      レ、⌒Y⌒ヽ
      ね の   _ゝ|/    ヽト、|/        ヽト、N'            ヾ,ノ!
       l は  「  l   /\    /\        | |  /\   /\     リ
            ヽ  |               ノ! ! |              _ノ
    -┐    ,√   !               リ l   !             7/
      レ'⌒ヽ/ !    |     ○     _人__人ノ_  i    ○       //!
    人_,、ノL_,iノ!  /! ヽ          「      L_ヽ           ノ/
          /  / lト、 \        ノ   フ    了\          //
    ハ キ  {  /   ヽ,ト、ヽ/!`h   )   ッ   |/! 「ヽ,   /)   _ ‐'
    ハ ャ   ヽ/   r-、‐' // / |-‐ く  サ ジ    > / / `'//-‐、    /
    ハ ハ    > /\\// / /ヽ_  !  | ッ   (  / / //  / `ァ-‐ '
    ハ ハ   / /!   ヽ    レ'/ ノ  ン    >  ' ∠  -‐  ̄ノヽ   /
           {  i l    !    /  フ      /     -‐ / ̄/〉 〈 \ /!

    881 = :

    すみません、誤爆しましたorz

    882 = :

    >879
    その辺は他が具体的にだいたいどうなってるかが分かっとけばいくらでもなんともできる
    ライブラリーとかじゃなくてその場の道具として使うのならなんとかなる

    883 = :

    仮引数の変更を実引数の変更に反映させる方法ってありますか?
    hogeみたいにすると、グローバル変数が増えてしまう

    new function fuga(){
    function f(i){g(i);g(i);}
    function g(i){++i;pn(i);}
    var i=0;f(i);
    }

    new function hoge(){
    function f(){g();g();}
    function g(){++i;pn(i);}
    var i=0;f(i);
    }

    885 = :

    Objectは参照渡しだからObjectで渡したらいいよ

    886 = :

    できました、ありがとうございました!

    887 = :

    「参照渡し」という用語の使い方が間違っている。
    オブジェクトは「共有渡し」だから、とか言うべきかも。

    888 = :

    >>887
    そんな造語で言われるとかえって通じない

    889 = :

    あんたが無知なだけでしょ。
    http://en.wikipedia.org/wiki/Evaluation_strategy

    891 = :

    コピーリストアと参照渡しも別のもの。どちらもFORTRANの実装に
    よく使われていた。基本的にパラメタをサブルーチン側から書き換えて
    結果を返せるようにしたもの。オブジェクトを渡して共有させる >>885
    とは別のもの。ま、そういう試験に出るような知識なんかどうでもいい
    と言われるならその通りなんだけどね。ちなみに情報科学ものの項目は
    日本語Wikipediaはあんまり信用できないと思っている。

    892 = :

    凄くどうでも良いと思うが・・・
    意味合いで通じない分けじゃあるまい・・・
    それに信用出来ないなら信用出来るように書き換えればいい話

    893 = :

    「参照渡し」という用語の間違った理解が広まるのは嫌。
    日本語Wikipediaを片端から編集して回れと?まっぴらだね。

    894 = :

    意味の違う言葉を「意味合いで通じる」でいっしょくたにしてしまう方が分かりづらいと思うけどな。
    個人的にはJSやJavaの引数は「参照のコピー渡し、みたいなもの」とか言ってたんで、
    call-by-sharingという用語があることを知ってすごく納得した。

    895 = :

    > オブジェクト(すなわち 非プリミティブ値、例えば配列やユーザ定義オブジェクトなど)をパラメータとして渡すと、そのオブジェクトへの参照が関数に渡されます。
    > つまり、その関数がそのオブジェクトのプロパティを変更した場合、その変更はその関数外でも有効です。
    http://developer.mozilla.org/ja/Core_JavaScript_1.5_Guide/Functions

    > If you pass an object (i.e. a non-primitive value, such as Array or a user-defined object) as a parameter, a reference to the object is passed to the function.
    > This means that if the function changes the object's properties, that change is visible outside the function,
    http://developer.mozilla.org/en/Core_JavaScript_1.5_Guide/Functions

    参照でも間違ってないでしょう

    897 = :

    ■参照渡しはあるよ派
    function hoge(p) { p.name = "buchi"; }
    var q = {};
    hoge(q);
    alert(q.name); "buchi"

    関数はちゃんと渡したオブジェクトに対してアクセスできているので参照渡しと呼んで良い。
    プリミティブでは純粋な値渡しになるので、違いを明確にするためにも
    「参照」と呼んで誤解を招かないようにすべき。


    ■参照渡しはないよ派
    function hoge(p) { p = "cat"; }
    var q = "dog";
    hoge(q);
    alert(q); // "dog"

    ってやったとき、 "cat" と表示されるのが引数が参照渡し。
    JavaScriptでもJavaにもこの参照渡しという仕組み自体が存在しない。
    参照渡しが欲しければC/C++やVBAやれ。

    898 = :

    http://akira.wamp.jp/study/markup/ecma-262-beginning.html
    共有渡しなんて使わない、参照で合ってる。ECMAScriptの仕様でも参照型になってるよ。

    899 = :

    はい、これでおしまい

    900 = :

    いやいや、俺の暇つぶし

    >>897 ポインタを介してそれが実現出来るだけで、C言語には参照渡しはない。
    >>898 よくある勘違いで、参照型と参照渡しは直接関係ない。参照型を値渡しすることだってある
    適当にググったらけど例えばこれ
    http://msdn.microsoft.com/ja-jp/library/eek064h4.aspx

    仕様書の8.7 参照型にはこんなことが書いてある
    a value of type Reference is used only as an intermediate result of expression evaluation and
    cannot be stored as the value of a variable or property
    変数とかプロパティには参照は格納されない

    (略)This possibility is admitted purely for the sake of host objects
    No builtin ECMAScript function defined by this specification returns a reference and there is no provision for a
    user-defined function to return a reference
    ただ、独自実装のために、参照を返すことは許されてる。

    でも実際の所、そんな実装はない


    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / JavaScript一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

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


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