私的良スレ書庫
不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitterでログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。
元スレ+ JavaScript の質問用スレッド vol.113 +
JavaScript スレッド一覧へ / JavaScript とは? / 携帯版 / dat(gz)で取得 / トップメニューみんなの評価 :
レスフィルター : (試験中)
>>398
スコープは関数ごとにしかないんだから覚えろよ。圧倒的にシンプルだろ
スコープは関数ごとにしかないんだから覚えろよ。圧倒的にシンプルだろ
>>401
書いてる人なら覚えれば済むことだが、
読まなきゃいけないときは、クラス図とかないとかなりきつくないか?
ある関数内でthis.format()という関数が呼び出されていました。
formatの定義位置を探したら30個の定義が見つかりました。
どのformatが呼ばれているのでしょうか?
newした後に予想外の場所でプロパティやプロトタイプチェーンが上書きされてたりするようなソースだと、
発狂したくなるんだが。
書いてる人なら覚えれば済むことだが、
読まなきゃいけないときは、クラス図とかないとかなりきつくないか?
ある関数内でthis.format()という関数が呼び出されていました。
formatの定義位置を探したら30個の定義が見つかりました。
どのformatが呼ばれているのでしょうか?
newした後に予想外の場所でプロパティやプロトタイプチェーンが上書きされてたりするようなソースだと、
発狂したくなるんだが。
thisとselfはどう使い分けたらいいの?
ここの先輩なら理由あって使い分けていると思います
ここの先輩なら理由あって使い分けていると思います
thisはそのメソッドを持ってるオブジェクトの参照ってだけじゃん
なので、いきなりメソッド名で検索って、あんまり賢くない気もする
> formatの定義位置を探したら30個の定義が見つかりました
> newした後に予想外の場所でプロパティやプロトタイプチェーンが上書きされてたり
ってのは、thisのありかたや関数スコープに根本的な問題があるわけではなく
全検索しなければならないようなコードの書き方や管理方法とか
コーディングの方針や規約に問題があるか、自分にあってないだけなんだよ
なので、いきなりメソッド名で検索って、あんまり賢くない気もする
> formatの定義位置を探したら30個の定義が見つかりました
> newした後に予想外の場所でプロパティやプロトタイプチェーンが上書きされてたり
ってのは、thisのありかたや関数スコープに根本的な問題があるわけではなく
全検索しなければならないようなコードの書き方や管理方法とか
コーディングの方針や規約に問題があるか、自分にあってないだけなんだよ
>>402
同じオブジェクトの定義を分散して配置したり、同名の異なる機能を過剰に混在させたコードを書く奴が悪い
真面目な話、IDEとかから実際に動かさないでそれらを把握できる解析機あったらJSエンジンの世界に革命来るで
同じオブジェクトの定義を分散して配置したり、同名の異なる機能を過剰に混在させたコードを書く奴が悪い
真面目な話、IDEとかから実際に動かさないでそれらを把握できる解析機あったらJSエンジンの世界に革命来るで
極端だけど、こんな感じで関数作られてたらどうしようもないよね。
"one two three".split(' ').forEach(function (d, i) {
window['get' + d.substr(0, 1).toUpperCase() + d.substr(1)] = function () {return i + 1;};
});
console.log(getOne()); // 1
console.log(getTwo()); // 2
console.log(getThree()); // 3
"one two three".split(' ').forEach(function (d, i) {
window['get' + d.substr(0, 1).toUpperCase() + d.substr(1)] = function () {return i + 1;};
});
console.log(getOne()); // 1
console.log(getTwo()); // 2
console.log(getThree()); // 3
>>406
読むときというのは、オープンソースだったり、プロジェクトを引き継ぐ時だったりの事だから、
管理方法やコーディングの方針、規約に問題あると言われてもな。
それはあくまで理想論だよ。
オープンソースならまだいいけど、人目に付かないようなソースだと、
コメントも手を抜いてたりかなりひどいのが現状でしょ。
読むときというのは、オープンソースだったり、プロジェクトを引き継ぐ時だったりの事だから、
管理方法やコーディングの方針、規約に問題あると言われてもな。
それはあくまで理想論だよ。
オープンソースならまだいいけど、人目に付かないようなソースだと、
コメントも手を抜いてたりかなりひどいのが現状でしょ。
>>408
結構好き
結構好き
>>397
「読めた」んじゃなくて「読んだ」んだろw
そんなものがないのは明らかなんだからそれを意味しているはずがない
A級以上のプログラマーは普通に考えたらあり得ない可能性を最初から除外するが
C級を以下のプログラマーはそういう解釈をまず真っ先に採用する
低能には他人の有能さが脅威なので、無意識のうちに安心したい選択を取るのだろうな
「読めた」んじゃなくて「読んだ」んだろw
そんなものがないのは明らかなんだからそれを意味しているはずがない
A級以上のプログラマーは普通に考えたらあり得ない可能性を最初から除外するが
C級を以下のプログラマーはそういう解釈をまず真っ先に採用する
低能には他人の有能さが脅威なので、無意識のうちに安心したい選択を取るのだろうな
いや最初から並のIQのある人間には分かるようにしか書いてねーから
とはいえ馬鹿にもっと賢くなれといっても無理だから
せめて書き込むな
迷惑だから
とはいえ馬鹿にもっと賢くなれといっても無理だから
せめて書き込むな
迷惑だから
ありえない解釈をしての文句をやめればいいよ
本当に、なにひとつ得るものがないのでね
本当に、なにひとつ得るものがないのでね
eventってどう書いてる?
e. aEvent. evt. ぐらいしか思いつかないけど
e. aEvent. evt. ぐらいしか思いつかないけど
文字を追加すると同時に、画面を下にスクロールする関数を自分で作って
その関数を使えばいいよ。
その関数を使えばいいよ。
>>425
使い分けるというより
function eventHandler() { event.xxx; }
みたいに引数にeventを書き忘れたときに、
グローバルのeventが参照されちゃうとかそうゆう事を心配してるような気がしたけど違うのかな?
グローバルのeventにアクセスしたいときはwindow.event使えばいいわけだし。
この手の変数名論争は最終的には好みの問題で決着つかない事が多いから、
ソース内で統一して使われてたらどっちでもいいってのが個人的意見。
使い分けるというより
function eventHandler() { event.xxx; }
みたいに引数にeventを書き忘れたときに、
グローバルのeventが参照されちゃうとかそうゆう事を心配してるような気がしたけど違うのかな?
グローバルのeventにアクセスしたいときはwindow.event使えばいいわけだし。
この手の変数名論争は最終的には好みの問題で決着つかない事が多いから、
ソース内で統一して使われてたらどっちでもいいってのが個人的意見。
ただ、一般的な例だと、
引数はeでもeventでもどっちでもいいけど、
eventの場合はeに変換して使うみたいのが多い気はする。
サイ本にも書かれてるし。
function eventHandler(e) {
if(!e) e = window.event;
}
function eventHandler(event) {
var e = event || window.event;
}
引数はeでもeventでもどっちでもいいけど、
eventの場合はeに変換して使うみたいのが多い気はする。
サイ本にも書かれてるし。
function eventHandler(e) {
if(!e) e = window.event;
}
function eventHandler(event) {
var e = event || window.event;
}
>>426-427
命名規則は個人の主観だからどうでもいいんだけど、「window.event と重複しないように命名する理由」がわからないんだ。
仮引数に付け忘れたらReferenceErrorになるからその時に仮引数つければいいだけの話だし。
attachEventも仮引数に対応してるし、あえていうならHTML埋め込み型の onclick や document.onclick で古いIEが対応してないことくぐらいかね。
それも呼び出し側で event を指定すればいい話だから全く持って重複を気にする理由がわからない。
> サイ本にも書かれてるし。
そうしないと対応できない環境がわからないのよ。呼び出し側はどう書かれてる?
命名規則は個人の主観だからどうでもいいんだけど、「window.event と重複しないように命名する理由」がわからないんだ。
仮引数に付け忘れたらReferenceErrorになるからその時に仮引数つければいいだけの話だし。
attachEventも仮引数に対応してるし、あえていうならHTML埋め込み型の onclick や document.onclick で古いIEが対応してないことくぐらいかね。
それも呼び出し側で event を指定すればいい話だから全く持って重複を気にする理由がわからない。
> サイ本にも書かれてるし。
そうしないと対応できない環境がわからないのよ。呼び出し側はどう書かれてる?
window.event を使用する必要があるのは document.onclick = listener; ぐらいかな
addEventListener を使えば済むからまず想定する必要がないが
addEventListener を使えば済むからまず想定する必要がないが
あえて考えるとするなら、IE向けサイトで
attachEvent()とonclickを共存させてて、
attachEventのlistenerに引数付け忘れた時とか?
複数人が自由気ままに開発してるような環境なら、
100%問題が起こらないとは言い切れない気もするので、
わざわざ重複する変数名を選ばないというのは良い選択なんじゃないだろうか?
attachEvent()とonclickを共存させてて、
attachEventのlistenerに引数付け忘れた時とか?
複数人が自由気ままに開発してるような環境なら、
100%問題が起こらないとは言い切れない気もするので、
わざわざ重複する変数名を選ばないというのは良い選択なんじゃないだろうか?
CodeIQのFizzBuzzダンジョンのLv3とLv4の解き方がわかんないよおおおおおおおお
本当は安全なのかもしれないけど、そうゆう細かいことを考えるのが面倒だからeを使ってるのに、
eventを使ってる人がeを使ってる人に理由を考えさせるのがよくわからん。
あえてeventを使ってる人が、あらゆるパターンを検証して、
eを使うのと全く変わらないということを証明してから使わなきゃいけないことなのに。
検証しなきゃ使えないのと検証しなくても使える。
この差は大きいと思うけど。
eventを使ってる人がeを使ってる人に理由を考えさせるのがよくわからん。
あえてeventを使ってる人が、あらゆるパターンを検証して、
eを使うのと全く変わらないということを証明してから使わなきゃいけないことなのに。
検証しなきゃ使えないのと検証しなくても使える。
この差は大きいと思うけど。
i とか j とか使わないの?
言語は変わるけど、VSの自動生成でもイベント変数は e になってるし、e で十分分かると思う
言語は変わるけど、VSの自動生成でもイベント変数は e になってるし、e で十分分かると思う
グローバルで使われる可能性がある変数名と同じ名前にしてよいかというのが論点なんだから、
eがいやならevtとか好きなの使えば良いだけなんだけどな。
eがいやならevtとか好きなの使えば良いだけなんだけどな。
http://www.cypress.ne.jp/s-4/rpgtown2/charamaker.htm
こんな感じの「設定項目ごとに更新」「その結果を下の方にまとめる」というのをjavascriptで真似したいのです。
しかし関数を実行するボタンを作って押すと更新されたページにテキストのみが表示されてしまいます。ネットの講座等を見てもそこら辺が書いていません。
色々とググった結果拾い物で、
<script type="text/javascript">
<!--
function Sample(){
var x,n=100;
n+=1;
x = Math.floor(Math.random()*n);
document.getElementById("t1").value = x;}
//-->
</script>
<input type="button" tabindex="1" onclick="Sample()" value="乱数生成"><br>
<input type="text" tabindex="2" id="t1" name="t1" value="">
というのが理想に近いと分かりました。
この「ボタンを押すと結果が新しいページではなくテキストボックスに代入される」
というあたりの理屈を初心者に教えていただけないでしょうか。
こんな感じの「設定項目ごとに更新」「その結果を下の方にまとめる」というのをjavascriptで真似したいのです。
しかし関数を実行するボタンを作って押すと更新されたページにテキストのみが表示されてしまいます。ネットの講座等を見てもそこら辺が書いていません。
色々とググった結果拾い物で、
<script type="text/javascript">
<!--
function Sample(){
var x,n=100;
n+=1;
x = Math.floor(Math.random()*n);
document.getElementById("t1").value = x;}
//-->
</script>
<input type="button" tabindex="1" onclick="Sample()" value="乱数生成"><br>
<input type="text" tabindex="2" id="t1" name="t1" value="">
というのが理想に近いと分かりました。
この「ボタンを押すと結果が新しいページではなくテキストボックスに代入される」
というあたりの理屈を初心者に教えていただけないでしょうか。
ちなみにこれがコピペを混ぜて作ろうとして失敗しているものです
<script type="text/javascript">
<!--
function Sample(){
var x=new Array(
"ももたろう","さる","きじ","いぬ","おに"
);
document.write(x[Math.floor(Math.random()*x.length)]);
document.getElementById("t1").value = x;}
//-->
</script>
<input type="button" onclick="Sample()" value="乱数生成"><br>
<input type="text" id="t1" name="t1" value="">
別なページに文章だけ出てしまうのはdocument.writeのせいだとは思うのですが
document.writeの中身の計算をどこにぶち込めばいいものか…
<script type="text/javascript">
<!--
function Sample(){
var x=new Array(
"ももたろう","さる","きじ","いぬ","おに"
);
document.write(x[Math.floor(Math.random()*x.length)]);
document.getElementById("t1").value = x;}
//-->
</script>
<input type="button" onclick="Sample()" value="乱数生成"><br>
<input type="text" id="t1" name="t1" value="">
別なページに文章だけ出てしまうのはdocument.writeのせいだとは思うのですが
document.writeの中身の計算をどこにぶち込めばいいものか…
>>440
3時間近く格闘してようやくできました…。
function Sample(){
var x= new Array("ももたろう","さる","きじ","いぬ","おに");
n = Math.floor(Math.random()*x.length);
document.getElementById("test").value = x[n];
};
<input type="button" onclick="Sample()" value="登場人物">
<input type="text" id="test" name="test" value="">
2時間くらいかかってようやくx[Math.floor(Math.random()*x.length)]の意味を理解…。
ただ悩んで調べた事で、配列や代入のあたりについていくらか勉強になったように思います。
ありがとうございました。
3時間近く格闘してようやくできました…。
function Sample(){
var x= new Array("ももたろう","さる","きじ","いぬ","おに");
n = Math.floor(Math.random()*x.length);
document.getElementById("test").value = x[n];
};
<input type="button" onclick="Sample()" value="登場人物">
<input type="text" id="test" name="test" value="">
2時間くらいかかってようやくx[Math.floor(Math.random()*x.length)]の意味を理解…。
ただ悩んで調べた事で、配列や代入のあたりについていくらか勉強になったように思います。
ありがとうございました。
>>443
そこまでやったら訂正する気になるな。
function Sample() {
var x = ["ももたろう", "さる", "きじ", "いぬ", "おに"];
var n = Math.floor(Math.random() * x.length);
document.getElementById("test").value = x[n];
}
<input type="button" onclick="Sample()" value="登場人物">
<input type="text" id="test" name="test" value="">
そこまでやったら訂正する気になるな。
function Sample() {
var x = ["ももたろう", "さる", "きじ", "いぬ", "おに"];
var n = Math.floor(Math.random() * x.length);
document.getElementById("test").value = x[n];
}
<input type="button" onclick="Sample()" value="登場人物">
<input type="text" id="test" name="test" value="">
使えないっていうのは、エラー用に予約してるって意味。
これはC++やJavaの時からそうしてる。
これはC++やJavaの時からそうしてる。
仕様書の例だと、DOM4では e ev event が、DOM3では e evt がてきとーに使われてるね
前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / JavaScript スレッド一覧へ
みんなの評価 : 類似してるかもしれないスレッド
- + JavaScript の質問用スレッド vol.113 + (1001) - [100%] - 2014/3/15 21:30
- + JavaScript の質問用スレッド vol.118 + (1002) - [97%] - 2014/8/29 22:30
- + JavaScript の質問用スレッド vol.116 + (1002) - [97%] - 2014/7/1 0:45
- + JavaScript の質問用スレッド vol.115 + (1001) - [97%] - 2014/5/29 16:16
- + JavaScript の質問用スレッド vol.114 + (1001) - [97%] - 2014/5/3 10:45
- + JavaScript の質問用スレッド vol.119 + (1002) - [97%] - 2014/10/3 15:30
- + JavaScript の質問用スレッド vol.112 + (1001) - [97%] - 2013/11/27 16:46
- + JavaScript の質問用スレッド vol.133 + (1001) - [97%] - 2018/6/8 10:45
- + JavaScript の質問用スレッド vol.111 + (1001) - [97%] - 2013/11/4 6:00
- + JavaScript の質問用スレッド vol.110 + (1001) - [97%] - 2013/10/13 14:01
- + JavaScript の質問用スレッド vol.117 + (1009) - [97%] - 2014/8/5 3:30
- + JavaScript の質問用スレッド vol.123 + (966) - [97%] - 2020/10/20 2:30
- + JavaScript の質問用スレッド vol.103 + (1001) - [97%] - 2012/11/9 15:30
- + JavaScript の質問用スレッド vol.123 + (1002) - [97%] - 2015/4/27 23:30
- + JavaScript の質問用スレッド vol.143 + (753) - [97%] - 2020/4/19 5:00
- + JavaScript の質問用スレッド vol.121 + (1001) - [95%] - 2015/1/1 18:30
- + JavaScript の質問用スレッド vol.120 + (1002) - [95%] - 2014/11/8 1:15
トップメニューへ / →のくす牧場書庫について