元スレ+ JavaScript の質問用スレッド vol.79 +
JavaScript覧 / PC版 /みんなの評価 :
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
ただ、独自実装のために、参照を返すことは許されてる。
でも実際の所、そんな実装はない
類似してるかもしれないスレッド
- + JavaScript の質問用スレッド vol.89 + (1001) - [97%] - 2011/9/4 4:17
- + JavaScript の質問用スレッド vol.74 + (1001) - [97%] - 2009/12/1 6:08 ○
- + JavaScript の質問用スレッド vol.75 + (1001) - [97%] - 2010/1/23 1:07 ○
- + JavaScript の質問用スレッド vol.76 + (1001) - [97%] - 2010/3/10 4:02
- + JavaScript の質問用スレッド vol.77 + (1001) - [97%] - 2010/5/8 19:06
- + JavaScript の質問用スレッド vol.78 + (1001) - [97%] - 2010/6/25 3:53
- + JavaScript の質問用スレッド vol.99 + (1001) - [97%] - 2012/5/7 4:32
- + JavaScript の質問用スレッド vol.129 + (981) - [95%] - 2016/5/5 8:16
- + JavaScript の質問用スレッド vol.119 + (1002) - [95%] - 2014/10/3 15:30
- + JavaScript の質問用スレッド vol.139 + (1001) - [95%] - 2019/5/27 15:15
- + JavaScript の質問用スレッド vol.109 + (1001) - [95%] - 2013/10/7 13:16
- + JavaScript の質問用スレッド vol.129 + (926) - [95%] - 2017/7/27 13:45
- + JavaScript の質問用スレッド vol.93 + (1001) - [95%] - 2011/12/10 18:31
- + JavaScript の質問用スレッド vol.98 + (1001) - [95%] - 2012/4/9 14:46
- + JavaScript の質問用スレッド vol.97 + (1001) - [95%] - 2012/3/1 3:31
- + JavaScript の質問用スレッド vol.95 + (1001) - [95%] - 2012/1/17 4:16
- + JavaScript の質問用スレッド vol.94 + (1001) - [95%] - 2012/1/8 15:46
トップメニューへ / →のくす牧場書庫について