+ JavaScript の質問用スレッド vol.113 +
単にむやみにグローバル関数をつかうなってことでは
よくないというより、そのコーディングスタイルは初心者だと言ってる様だけど。
>>949 デバイスに依存しないよう、Pointer Eventsが考案されたのでは
>>950 一つ上位の「(2)ノーマル(基礎的な知識があり,ある程度の動くものを作れるようになった段階)」で「JavaScriptで,プロトタイプベースのOOPができる。」とあるので、それと対比しているのでは?
レベル低すぎって思ったらWeb制作か
WebProgじゃなかったな。
957 :
Name_Not_Found:2014/03/14(金) 07:17:45.09 ID:4E7MHRK7
教えてください!
↓のような構造のコンストラクタのインスタンスを作成し、
_closer変数の中身を確認したい場合、
HogeClass = function(n){
this.initialize(n);
};
HogeClass.prototype = {
initialize: function(n){
var _closer = n;
this.getCloser = function(){ return _closer; };
this.setCloser = function(n){ _closer = n + 1; };
}
};
実行ステップがprototypeの中であれば、
Chromeで"Closure"という項目で確認できるのですが、
実行ステップがprototypeを抜けた後も確認する方法はありますでしょうか?
値を保持しているという事は、どこかにはあるはずなんですよね・・・?
なんかIE11でdomのnormarizeにバグがあるっぽいです
normarizeと同じことをする汎用的なライブラリみたいなものはないでしょうか
>>957 よくわからないけどクロージャーを外に出せばいいんじゃないの
var hoge = (function(){
function foo(){
var count=0;
return function(){
count++;
console.log(count);
};
}
var bar = foo();
console.log('foobar-----');
bar();
bar();
bar();
console.log('-----------');
return bar;
})();
console.log('hoge');
hoge();
今クロームで確かめてみたけどステップインで実行ステップが
クロージャーの中に入ればClosureの項目に変数確認できたよ
ステップオーバーだとだめだと思う
あ実行ステップがクロージャーにないときに変数を確認したいって意味か?
だとしたら分からない
どっかに保持してるだろうけど表示させていない以上は見れないんじゃないかな
return で関数も返せるなんて始めて知ったわ。最強の言語や。
見つけたわ
実行ステップがconsole.log('hoge')の時に
global→hoge(小文字変数は下の方)→<function scope>→Closure
>>958の件ですが自分で書いたらうまく動きました
短いコードで、いったいどこにバグが入り込む余地があるのか分かりません
MSのプログラマーはあほなのでしょうか
965 :
964:2014/03/14(金) 23:39:21.66 ID:???
わたしが間違っているわけはありえません。
わたしは絶対正しいです。
IEのバグです。そしてMSは無能です。
aa.turn({id_click:"zet_01", id_show:"q01"});
aa.turn({id_click:"zet_02", id_show:"q02"});
aa.turn({id_click:"zet_03", id_show:"q03"});
aa.turn({id_click:"zet_04", id_show:"q04"});
aa.turn({id_click:"zet_05", id_show:"q05"});
aa.turn({id_click:"zet_06", id_show:"q06"});
aa.turn({id_click:"zet_07", id_show:"q01"});
って書いているのですが、なんか短縮して書く方法ないでしょうか?
for(var i=1;i<=7;i++){
var hoge = 'zet_0' + i;
var fuga = 'q0' + i;
if(i==7){
fuga = 'q01';
}
aa.turn({id_click:hoge, id_show:fuga});
}
変数宣言いらなかった
for(var i=1;i<=7;i++){
aa.turn({id_click:'zet_0' + i, id_show:'q0' + (i==7?1:i)});
}
なんで7だけ
1.html
などを付けると/が付かないことが分かりました
/が付くか付かないかをどういうアルゴリズムで判定したらいいでしょうか
/が付くか付かないかを判定する必要があるのですか?
「URLの中に一つも/がない場合は末尾に/が付く」というアルゴリズムを思いつきました
これで合ってるでしょうか?
976 :
Name_Not_Found:2014/03/15(土) 05:00:02.62 ID:BP1ZeuMu
urlに/が入ってない場合に末尾に付ける関数を書きました
function addSlashToUrl(url){
var result;
result = url.match(/(ht|f)tps?\:\/\/(.*)/i);
return (result && result[2].indexOf('/')<0)?url + '/':url;
}
これ以上クールにすることは出来ますか?
クールではないことをクールに書こうとしているように見える…
>>979 末尾に/を入れてはならない(or入れると全然別の意味になる)場合もあるが、それはどう考えてる?
今までdocument.getElementsByTagName('body')[0]とかdocument.body || document.documentElementとかやってたのですが
単にbody要素への参照を取得したいのであればdocument.bodyで問題ないのでしょうか?
そんなの自分で試せばいいし、知らない環境があるかもって
思うのなら、jQueryを使えば良い。
$('body')[0]
>>970 hrefプロパティは絶対URLを返すからドメイン末尾に / がなければ / がつく
getAttribute を使えばhref属性値の文字列を取得出来るので / がつかない
しかし、hrefプロパティで困る状況は全く思いつかない
具体的にどうして困っているのか、補足が欲しい
>>979 replace一つで書ける
>>985 dom.href と dom.getAttribute('href') が違うなんてはじめて知りました
ありがとうございました
hrefが勝手に/を付けるので困るのは、aタグの同一性チェックのためです
完全に同じかを知りたかったので
>>986 言われてみれば、ドメインもディレクトリなんですね
なんか目から鱗でした
ありがとうございました
うーん・・・
詳しくは「urlルーティング」とか「dns」で検索かけて自分で調べましょう
hrefプロパティとhref属性は別物のようですが
プロパティと属性の違いは何ですか?
今までずっと同じ意味で使っていました
URLドメイン名の次につくスラッシュはドキュメントルートのスラなんじゃないの?
>>987 a要素ノードの比較ならオブジェクトをそのまま比較すればいいだろう
同じURL参照しているa要素の比較ならhrefプロパティで十分だろう
わざわざ、文字列比較する意味は全くないように思える
>>992 aタグ同士の同一性チェックではなく、
URL自動リンク時の、a要素とリンク文字列の同一性チェックです
array.indexOfはIE9からしかありませんが
やはり皆様はjqueryのinArrayを使っているのでしょうか?
IE使ってない
いまだにIE7がシェア一位と言われていますがそれを切り捨ててるのですか?
はい
おじいちゃんおばあちゃんにも見て欲しいと思ったことは一度もありません
そうですか
でもそれは偉くもなんともないことですよ
むしろIEにも対応する方が偉いんです
はい ここで質問してIEにも対応するあなたはとても偉いと思います1000ゲット
1001 :
1001:
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。