私的良スレ書庫
不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitterでログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。
元スレ+ JavaScript の質問用スレッド vol.80 +
JavaScript スレッド一覧へ / JavaScript とは? / 携帯版 / dat(gz)で取得 / トップメニューみんなの評価 :
レスフィルター : (試験中)
>>946
了解です。
>>948-949
面白い方法ですね。Function#name を使わないのは独自拡張だから(IE で使えない)からかな?
name - MDC
http://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/name
了解です。
>>948-949
面白い方法ですね。Function#name を使わないのは独自拡張だから(IE で使えない)からかな?
name - MDC
http://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/name
一応、Function#name は Firefox v3.6.12, Opera v10.63, Google Chrome 7 で使えることを確認しました。(IE8 は不可)
ありがと。
他言語での経験から.nameしてみたけどIE8だったので見事に無理でした。
一般公開を目的としたサイトでIEで動かないような構築をしている人ってそんなに多いの?。
他言語での経験から.nameしてみたけどIE8だったので見事に無理でした。
一般公開を目的としたサイトでIEで動かないような構築をしている人ってそんなに多いの?。
クロスブラウザを考慮するなら、こんな感じかな。
function getFunctionName (func) {
var functionBody;
functionBody = /^function\s+([^\s(]+)/.exec(func.toString());
return functionBody ? functionBody[1] : functionBody; // Function#name || null
}
var a = function abc () { ; };
console.log(a.name || getFunctionName(a));
>>953
Function#name を得る標準的な方法はないので独自拡張に頼るしかないんだと思います。
IE8- はまともな方法では得られないんじゃないかな…。(IE9 はわかりませんが)
# Function.prototype.name を拡張できたら面白そうではありますが。
function getFunctionName (func) {
var functionBody;
functionBody = /^function\s+([^\s(]+)/.exec(func.toString());
return functionBody ? functionBody[1] : functionBody; // Function#name || null
}
var a = function abc () { ; };
console.log(a.name || getFunctionName(a));
>>953
Function#name を得る標準的な方法はないので独自拡張に頼るしかないんだと思います。
IE8- はまともな方法では得られないんじゃないかな…。(IE9 はわかりませんが)
# Function.prototype.name を拡張できたら面白そうではありますが。
>>954
参考になります
参考になります
しまった…。匿名関数を考慮していませんでした。
匿名関数の Function#name は空文字を返すようです。(Google Chrome 7 で確認)
var a = function () { ; };
console.log('"' + a.name + '"'); // ""
というわけで、>954の修正版。
function getFunctionName (func) {
var functionBody;
functionBody = /^function\s+([^\s(]*)(?=\()/.exec(func.toString());
return functionBody ? functionBody[1] : null; // Function#name || null
}
var a = function () { ; };
console.log('"' + getFunctionName(a) + '"'); // ""
本来は IdentifierName 生成規則に沿った方がいいと思いますが、解読に時間がかかりそうだったので省略しました。
http://www2u.biglobe.ne.jp/~oz-07ams/prog/ecma262r3/7_Lexical_Conventions.html#Identifier
http://sideshowbarker.github.com/es5-spec/#x7.6
# Function.prototype.name を拡張するためにはFunctionコンストラクタを置き換えなくてはならず…、かなり面倒ですね。
匿名関数の Function#name は空文字を返すようです。(Google Chrome 7 で確認)
var a = function () { ; };
console.log('"' + a.name + '"'); // ""
というわけで、>954の修正版。
function getFunctionName (func) {
var functionBody;
functionBody = /^function\s+([^\s(]*)(?=\()/.exec(func.toString());
return functionBody ? functionBody[1] : null; // Function#name || null
}
var a = function () { ; };
console.log('"' + getFunctionName(a) + '"'); // ""
本来は IdentifierName 生成規則に沿った方がいいと思いますが、解読に時間がかかりそうだったので省略しました。
http://www2u.biglobe.ne.jp/~oz-07ams/prog/ecma262r3/7_Lexical_Conventions.html#Identifier
http://sideshowbarker.github.com/es5-spec/#x7.6
# Function.prototype.name を拡張するためにはFunctionコンストラクタを置き換えなくてはならず…、かなり面倒ですね。
テンプレ論議している余裕はないので、新たな提案であればそれは
次回回しということでお願いしたいです。次スレは975超えたら。
次回回しということでお願いしたいです。次スレは975超えたら。
>>944
ここらへんは?
あと、vol.77あたりであったのは、無かったことでいいのかな。
+ JavaScript の質問用スレッド vol.77 +
http://pc11.2ch.net/test/read.cgi/hp/1268206233/841-
ここらへんは?
あと、vol.77あたりであったのは、無かったことでいいのかな。
+ JavaScript の質問用スレッド vol.77 +
http://pc11.2ch.net/test/read.cgi/hp/1268206233/841-
http://developer.mozilla.org/ja/DOM/windowに掲載されているwindowオブジェクトってw3cでは掲載されてないのでしょうか?
alertとかnavigatorとかそういうメソッドも見当たりませんでした
http://www.w3.org/DOM/Activityからたどれる所は全て見たのですが探し方が悪いのでしょうが見当たりませんでした
DOMの本家の情報は他にあるのでしょうか?
alertとかnavigatorとかそういうメソッドも見当たりませんでした
http://www.w3.org/DOM/Activityからたどれる所は全て見たのですが探し方が悪いのでしょうが見当たりませんでした
DOMの本家の情報は他にあるのでしょうか?
IE はコメントを除去しないんだよなぁ
alert(function/*(*/name(){})
alert(function/*(*/name(){})
>>959
例えば、window.alert は MDC では "DOM Level 0" と説明されています。
---
仕様
DOM Level 0。どの標準にも属しません。
http://developer.mozilla.org/ja/DOM/window.alert
---
---
"DOM Level 0"
"DOM Level 0" は W3C が DOM の標準化を始める前にブラウザ間で共通だったオブジェクトモデルです。
・Netscape の クライアントサイド JavaScript ガイド(Javascript と "DOM Level 0" を扱います)
・Netscape の クライアントサイド JavaScript リファレンス(Javascript と "DOM Level 0" を扱います)
・JavaScript スクリプティングリソース - "ダイナミック HTML" と JavaScript に関するさまざまなサイトへのリンク
http://www.mozilla-japan.org/docs/web-developer/#scripting
---
"DOM Level 0" は DOM 仕様としては策定されていませんが、デファクトスタンダードとして確立されている仕様を指します。
(実際には window.open を IE が独自拡張していたりしますが、概ね全てのブラウザで同じ挙動を示します。)
この辺りの曖昧さは HTML5 で標準化される予定です。
W3C の HTML5 はhttp://www.w3.org/TR/html5/ にありますが、まだ最終草案段階なので WHATWG (http://whatwg.org/html5 ) の方が最新の情報が手に入ります。
6.2 The Window object
http://www.whatwg.org/specs/web-apps/current-work/multipage/browsers.html#the-window-object
HTML5 はAudioオブジェクトなど新しい技術が注目されがちですが、実際にはデファクトスタンダードとして確立された仕様を改めて標準化しているものも数多く含んでいます。
少し前に話題になった innerHTML もそうです。innerHTML は標準化こそされていませんでしたが多くのブラウザで(ほぼ)同じ振る舞いをします。
これらは既にあるブラウザの実装に合わせて HTML5 で標準化されているので、未だ最終草案段階とはいえ勧告までに大きな変更があるとは思えません。
例えば、window.alert は MDC では "DOM Level 0" と説明されています。
---
仕様
DOM Level 0。どの標準にも属しません。
http://developer.mozilla.org/ja/DOM/window.alert
---
---
"DOM Level 0"
"DOM Level 0" は W3C が DOM の標準化を始める前にブラウザ間で共通だったオブジェクトモデルです。
・Netscape の クライアントサイド JavaScript ガイド(Javascript と "DOM Level 0" を扱います)
・Netscape の クライアントサイド JavaScript リファレンス(Javascript と "DOM Level 0" を扱います)
・JavaScript スクリプティングリソース - "ダイナミック HTML" と JavaScript に関するさまざまなサイトへのリンク
http://www.mozilla-japan.org/docs/web-developer/#scripting
---
"DOM Level 0" は DOM 仕様としては策定されていませんが、デファクトスタンダードとして確立されている仕様を指します。
(実際には window.open を IE が独自拡張していたりしますが、概ね全てのブラウザで同じ挙動を示します。)
この辺りの曖昧さは HTML5 で標準化される予定です。
W3C の HTML5 はhttp://www.w3.org/TR/html5/ にありますが、まだ最終草案段階なので WHATWG (http://whatwg.org/html5 ) の方が最新の情報が手に入ります。
6.2 The Window object
http://www.whatwg.org/specs/web-apps/current-work/multipage/browsers.html#the-window-object
HTML5 はAudioオブジェクトなど新しい技術が注目されがちですが、実際にはデファクトスタンダードとして確立された仕様を改めて標準化しているものも数多く含んでいます。
少し前に話題になった innerHTML もそうです。innerHTML は標準化こそされていませんでしたが多くのブラウザで(ほぼ)同じ振る舞いをします。
これらは既にあるブラウザの実装に合わせて HTML5 で標準化されているので、未だ最終草案段階とはいえ勧告までに大きな変更があるとは思えません。
> think49
簡潔に書け
IEはコメント除去しないどころじゃない
function A, B(){
}
alert([A,B]);
function A.prototype.a(){
}
alert(new A().a);
IEだと動くんだぜコレ
簡潔に書け
IEはコメント除去しないどころじゃない
function A, B(){
}
alert([A,B]);
function A.prototype.a(){
}
alert(new A().a);
IEだと動くんだぜコレ
>>962
いいですね。テンプレ議論をスレ最後でやるから間に合わなくなるっぽいですしね。
いいですね。テンプレ議論をスレ最後でやるから間に合わなくなるっぽいですしね。
>>959
Window Object 1.0 (W3C Working Draft)
Window Object 1.0 (W3C Working Draft)
>>965
それを判断するのは質問者なのでは?
詳しい回答が冗長に感じる人がいれば、簡潔な回答では物足りない人もいるでしょう。
それがわからない以上、簡潔に書いても詳しく書いても同じだと私は思いますが。
それを判断するのは質問者なのでは?
詳しい回答が冗長に感じる人がいれば、簡潔な回答では物足りない人もいるでしょう。
それがわからない以上、簡潔に書いても詳しく書いても同じだと私は思いますが。
IEはこうもだろ
var a = function abc(){1};
alert(abc); // "function abc(){1}"
var a = function abc(){1};
alert(abc); // "function abc(){1}"
>>968
独自研究は他所でやれ
独自研究は他所でやれ
load("url",false,funcname,"string");で呼んだ場合に2つ目のalert(arguments);がobjectに
なってしまうのですがこれはどうしてでしょうか?。
function load(url, async, callback, arguments) {
alert(arguments);//
m_xmlhttp.open("GET", url, async);
m_xmlhttp.onreadystatechange = function() {
if (m_xmlhttp.readyState == 4 && m_xmlhttp.status == 200) {
alert(arguments);//
callback(m_xmlhttp.responseText, arguments);
}
}
m_xmlhttp.send();
}
なってしまうのですがこれはどうしてでしょうか?。
function load(url, async, callback, arguments) {
alert(arguments);//
m_xmlhttp.open("GET", url, async);
m_xmlhttp.onreadystatechange = function() {
if (m_xmlhttp.readyState == 4 && m_xmlhttp.status == 200) {
alert(arguments);//
callback(m_xmlhttp.responseText, arguments);
}
}
m_xmlhttp.send();
}
argumentsという名前がいけない
argumentsは予約語では無いが関数を呼び出した時に
関数内で自動的に生成されるオブジェクト
生成されたオブジェクトでは呼び出し元とか引数の値等が入ってる
argumentsは予約語では無いが関数を呼び出した時に
関数内で自動的に生成されるオブジェクト
生成されたオブジェクトでは呼び出し元とか引数の値等が入ってる
全くの初心者で本読んでもほとんど理解できずに居ましたが、このスレの皆さんの助言によってようやくJavaScriptを扱えるようになり、本当に助かりました
もう言葉じゃ表現出来ないほどの感謝の気持ちで一杯です
本当にありがとうございました
もう言葉じゃ表現出来ないほどの感謝の気持ちで一杯です
本当にありがとうございました
for(var i = 0; i<5 ; i++){
var a = $(document.createElement("div"));
with({i:i}){
a.click = function(){ alert(i); };
}
a.text("Withのてすと");
$("body").append(a);
}
>>781-あたりでブロックスコープについての話題があったから調べてみたらwithで値を束縛できることを知ったのだけど、
使わないほうがいいという事も書いてあったけど使わないほうがいい理由って何かあったりするの?
var a = $(document.createElement("div"));
with({i:i}){
a.click = function(){ alert(i); };
}
a.text("Withのてすと");
$("body").append(a);
}
>>781-あたりでブロックスコープについての話題があったから調べてみたらwithで値を束縛できることを知ったのだけど、
使わないほうがいいという事も書いてあったけど使わないほうがいい理由って何かあったりするの?
スレ立て人ですが、スレ立て規制で建てられないです…
どなたかお願いします。テンプレの変更は今回はなしですので…
どなたかお願いします。テンプレの変更は今回はなしですので…
デザインパターンを勉強中なのですが、JSでVisitorパターンをどういう風に実装していいか悩んでいます
型によるオーバーロードができないのでディスパッチ部分の記述がどうしても汚くなってしまいそうです
なにか良い方法はないでしょうか
型によるオーバーロードができないのでディスパッチ部分の記述がどうしても汚くなってしまいそうです
なにか良い方法はないでしょうか
デザパタといってもよく使うパターンがあってね
結論からいうとVisitorパターンなんて使わないっすよね
結論からいうとVisitorパターンなんて使わないっすよね
>>981
JSについてはこの人の言うこと聞いておいていいと思うよ
http://blog.livedoor.jp/dankogai/archives/51066288.html
んじゃトイレ行って一休みしたら次スレ立ててくる
JSについてはこの人の言うこと聞いておいていいと思うよ
http://blog.livedoor.jp/dankogai/archives/51066288.html
んじゃトイレ行って一休みしたら次スレ立ててくる
>>986
乙
乙
>>979
with は指定したオブジェクトをスコープチェインの先頭に追加するだけだから、
・変数の名前解決の効率低下の原因になり得る
・読むときに、変数がどの時点で解決されるか分かりにくい
それに加えて、
・ES5 の strict mode では使用できない
かな。
with は指定したオブジェクトをスコープチェインの先頭に追加するだけだから、
・変数の名前解決の効率低下の原因になり得る
・読むときに、変数がどの時点で解決されるか分かりにくい
それに加えて、
・ES5 の strict mode では使用できない
かな。
>>990
なるほどありがとう
なるほどありがとう
>>979はwithで遅くなる典型例
ま、ループのたびに$("body")する時点で速度は度外視なんだろうが
ま、ループのたびに$("body")する時点で速度は度外視なんだろうが
| \
|Д`) ダレモイナイ・・オドルナラ イマノウチ
|⊂
|
♪ Å
♪ / \ ランタ タン
ヽ(´Д`;)ノ ランタ タン
( へ) ランタ ランタ
く タン
♪ Å
♪ / \ ランタ ランタ
ヽ(;´Д`)ノ ランタ タン
(へ ) ランタ タンタ
> タン
|Д`) ダレモイナイ・・オドルナラ イマノウチ
|⊂
|
♪ Å
♪ / \ ランタ タン
ヽ(´Д`;)ノ ランタ タン
( へ) ランタ ランタ
く タン
♪ Å
♪ / \ ランタ ランタ
ヽ(;´Д`)ノ ランタ タン
(へ ) ランタ タンタ
> タン
前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / JavaScript スレッド一覧へ
みんなの評価 : 類似してるかもしれないスレッド
- + JavaScript の質問用スレッド vol.85 + (1001) - [97%] - 2011/4/25 21:32
- + JavaScript の質問用スレッド vol.81 + (1001) - [97%] - 2010/12/10 20:01
- + JavaScript の質問用スレッド vol.87 + (1001) - [97%] - 2011/6/21 6:33
- + JavaScript の質問用スレッド vol.86 + (1001) - [97%] - 2011/5/27 21:50
- + JavaScript の質問用スレッド vol.90 + (1001) - [97%] - 2011/10/26 4:18
- + JavaScript の質問用スレッド vol.84 + (1001) - [97%] - 2011/3/30 7:32
- + JavaScript の質問用スレッド vol.83 + (1001) - [97%] - 2011/2/24 8:02
- + JavaScript の質問用スレッド vol.82 + (1001) - [97%] - 2011/1/19 7:54
- + JavaScript の質問用スレッド vol.90 + (1001) - [97%] - 2011/11/15 20:32
- + JavaScript の質問用スレッド vol.89 + (1001) - [97%] - 2011/9/4 4:17
- + JavaScript の質問用スレッド vol.88 + (1001) - [97%] - 2011/7/20 7:03
- + JavaScript の質問用スレッド vol.130 + (1001) - [95%] - 2017/11/25 20:45
- + JavaScript の質問用スレッド vol.104 + (1001) - [95%] - 2013/1/28 4:00
- + JavaScript の質問用スレッド vol.103 + (1001) - [95%] - 2012/11/9 15:30
- + JavaScript の質問用スレッド vol.102 + (1001) - [95%] - 2012/9/11 17:30
- + JavaScript の質問用スレッド vol.120 + (1002) - [95%] - 2014/11/8 1:15
- + JavaScript の質問用スレッド vol.101 + (1001) - [95%] - 2012/7/16 14:15
トップメニューへ / →のくす牧場書庫について