元スレ+ JavaScript の質問用スレッド vol.89 +
JavaScript覧 / PC版 /みんなの評価 :
351 = :
>>348
Function#name と Function#toString の値が異なります。
関数宣言はいわゆる巻き戻しが発生しますが、関数式は巻き戻しが発生しません。(IE8- の名前付き関数式は例外)
>>350
名前付き関数式は IE8- にバグがあるので挙動を理解しているの出なければお勧めはしないです。IE8- では関数宣言と無名関数式が同時に定義されたかのように振る舞います。
巻き戻しを嫌うのでしたら関数式ですが、IE8- を考慮するなら名前付き関数式を使えないので無名関数式一択ですね。
http://d.hatena.ne.jp/think49/20110521/1305959222
352 = :
> 関数宣言はいわゆる巻き戻しが発生しますが、関数式は巻き戻しが発生しません。(IE8- の名前付き関数式は例外)
へー、そうだったのか
早くIE9普及しないかな、windows8からはデフォがIE9になるんだべ
353 = :
>>351
その文脈における「巻き戻し」というのはスコープに入った時、関数としてアクセスできるかって事?
関数式の場合は「var」で変数宣言すればローカル変数になってるから変数自体にはアクセスできるけど
スコープに入った直後は「undefined」だから、関数が代入されるまで関数としてアクセスできない、ってことかな?
355 = :
IEってIE9からやっと他のに追いついたって感じなんだよなぁ
IE8でHTML5とかに対応させなかったのが痛い
359 = :
>>357
丁寧に返答してくれてありがとう
この辺りは厳密に理解するのが難しいわ…
360 = :
>>357
関数宣言は宣言されてる文脈(実行コンテキスト)進入時点で実体化されてるしょ。
呼び出しとかグローバルコードとか関係なく。
361 = :
私が読み間違えているのかもしれませんが、関数コードは実行コンテキストに入るために関数呼び出しが必要と認識していました。
http://www2u.biglobe.ne.jp/~oz-07ams/prog/ecma262r3/13_Function_Definition.html#section-13.2.1
function hoge () {
piyo();
function piyo () { alert('piyo'); } // hoge が [[Call]] された時に実行コンテキストを設置して piyo が実体化される
}
hoge();
>http://www2u.biglobe.ne.jp/~oz-07ams/prog/ecma262r3/10_Execution_Contexts.html#section-10.1.3
"意味論的に、このステップは FormalParameterList プロパティの生成に続かなければならない。" とあるので [[Call]] の後だろうと解釈したのですが…、解釈の仕方を間違えているのでしょうか?
362 = :
>>355
HTML5はまだ草案だからいいけど、XHTMLとかDOM2とかにまともに対応してないのが面倒くさい
363 = :
>>361
「上位スコープの関数呼び出し時」 = 「宣言されてる文脈(実行コンテキスト)進入時」
てことか。スマソ
364 = :
「巻き上げ」とちゃうの?
365 = :
>>364
変数宣言による巻き上げはよく見ますが、関数宣言の巻き上げは見覚えがなかったので>>353で指摘されて「間違えちゃったか」と脊髄反射レスしてました。
(ECMAScript 仕様にない造語なので確かめにくくて…って言い訳かな)
『JavaScript パターン』(P63) に「4.1.4 関数の巻き上げ」がありました。どうやらどちらも巻き上げで問題なかったようです。
>>361に近いコードが 4.1.2 で触れられていますね。
366 = :
…って、「巻き上げ」と「巻き戻し」か。
ごめんなさい、素で間違えてました。
369 = :
すみません
> DOMContentLoaded
こういうの判断したいです・・・無理ですか
370 = :
>>368
Chromeだとtrue返すけどFirefoxだとfalse返す?何か間違えてるかな俺
371 = :
>>370
コードを書かなければ検証もできない
そのコードが正しいならFirefoxは未対応なんだろう
372 = :
<body>
</body>
<script>
alert("onload" in window);
alert("onclick" in document.documentElement);
alert("onclick" in document.body);
</script>
こんなんだけど
373 = :
>>369
意図的に該当イベントが発火するようにコーディングして、発火タイミングで Event#isTrusted を見るぐらいでしょうか。
Event#isTrusted は Firefox4 しか対応していませんが…。
http://jsfiddle.net/vW7Rk/
374 = :
必要になる前に一度イベントを発生させて
イベントリスナーが反応するか試す
みたいな感じですか
ふーちゃーでてくしょんみたいな方法があるのかなと思ってました
ありがとうございます
375 = :
>>370,372
Modernizr では setAttribute を利用しているようです。isEventSupported の辺り。
http://www.modernizr.com/
http://kangax.github.com/iseventsupported/
setAttribute を持たないノードに対しては HTMLDivElement で代替したり、setAttribute で該当ノードを書き換えている点でいい手法とは思えませんが、代替手段がないので仕方ないのかな…。
377 = :
あるけど、対応してないブラウザとかあって
あまり推奨されてない
っていうか推奨されてないから対応してないブラウザがあるって感じだったよーな
378 = :
>>376
何その議論のための議論みたいな質問。それなら「classの定義」を
まず述べてみていただけますか。
379 = :
JavascriptでClassは使うなって父方の祖父に言われた
380 = :
JavaScript でも instance という言葉が使われるのに、それと対極を成す言葉がないのはおかしくないか。
381 = :
>>380
インスタンスがあるからクラスもあるとは限らない
382 = :
>>381
JavaScript にもクラスの概念はある、ということには賛同なんですね。
"クラス" と呼ぶものが JavaScript の実装に存在しているかどうかは別にして。
384 = :
対極はコンストラクタでしょ?
385 = :
>>382
認めてないし、どうしたらそんな解釈になるのかな
386 = :
認めてるくせに。
387 = :
自分が思い込んでいることを是正できない頭でっかちなんだろ
何言っても無駄だからスルーしとけ
388 = :
>>387
だな。
389 = :
【コラム】そろそろきっちりJavaScript (4) クラスベースとプロトタイプベースの違い | エンタープライズ | マイコミジャーナル
http://journal.mycom.co.jp/column/js/004/index.html
390 = :
>377
非推奨で使えないブラウザがあるとは驚きました
それならHTMLCollection.prototypeとかはどのように実装したらいいのでしょうか?
>378
ClassとはObjectを抽象的に一般化したものと認識しています
よって多くの言語で雛型の様な使い方がされていますが、別にどのくらいどのように利用できるかは本質ではないと思います
391 = :
自分でも「classではないがclassのようなもの」みたいな表現をしているけど
(「JAVAやCのようなclassでは無いものの」「特殊な身分のclassではないものの」)
それをClassと思いたいんならそう思えばいいんでないの
自分の中で自分ルールの線引きがあるみたいだし他人に意見を求める必要はないんでないの
自分の中で答えが決まっているのになぜ意見を求めるの?求めているのは意見じゃなくて同意?
知り合いと言い争いになって、自分のほうが正しいという後ろ盾がほしいとか?
名無しの後ろ盾でいいのなら、あなたのいうとおり!あなたがただしい!
392 = :
表現のためのClassならありますってだけだろ
393 = :
3組の山本がかわいいまで読んだ
394 = :
おまえらがんばたって海外のデベロッパーに勝てないのになんで無駄なことしてんの?
海外のデベロッパーが作ったライブラリをちまちまいじってるだけだろ?
395 = :
>>390
仕様にない用語は自己表現なので人に伝える手段としては適切でないことが多いよ
396 = :
IE6 で URL 末尾のクエリ文を取得する方法について教えてください。
以下の内容は IE6 ですが、IE7 以降では問題なく実行できるようです。
もしスレチだったら誘導をお願いします。
【環境】
WindowsXP + IE6 + HTA + JavaScript
【何をしたのか】
・mshta.exe を使って、別のウィンドウで HTA の画面を表示する
・その際に、新しく開く側の HTA 内でクエリを受け付けたい
・上記のため、【サンプルコード】を呼び出し側の HTA ファイル内で実行してみた
【期待する結果】
location.search でクエリ文を受け取りたい。
が、 空文字しか取得できない。
【サンプルコード】
var script = new ActiveXObject( "WScript.Shell" );
script.Exec( "mshta.exe ""[HTAファイルのパス]?param=001""" );
397 = :
>>390
その俺様定義には異論があるね。オブジェクトを抽象化するって
何を取捨選択するわけさ。もっと普通の定義を参照して欲しい。
398 = :
>>390
> ClassとはObjectを抽象的に一般化したものと認識しています
同意出来ない。そもそも、クラスベースとかJavaとか厳密に定められた定義があるのに何でオレオレ定義にするの?
あなたは「JavaScriptにもオレオレ定義のClassがありますよね」っていってるだけだよ。
そのオレオレ定義でさえ曖昧すぎて同意できない。
399 = :
ウンコではないもののウンコのようなもの
それはじゅうぶんウンコといっていいのではないでしょうか!?
つまりカレーは、ウンコではないものの、ウンコですよね!?
ウンコとはちゃいろっぽくてやわらかくてどくとくのにおいのするものとにんしきしています!!
類似してるかもしれないスレッド
- + JavaScript の質問用スレッド vol.81 + (1001) - [97%] - 2010/12/10 20:01
- + JavaScript の質問用スレッド vol.82 + (1001) - [97%] - 2011/1/19 7:54
- + JavaScript の質問用スレッド vol.88 + (1001) - [97%] - 2011/7/20 7:03
- + JavaScript の質問用スレッド vol.87 + (1001) - [97%] - 2011/6/21 6:33
- + JavaScript の質問用スレッド vol.86 + (1001) - [97%] - 2011/5/27 21:50
- + JavaScript の質問用スレッド vol.99 + (1001) - [97%] - 2012/5/7 4:32
- + JavaScript の質問用スレッド vol.85 + (1001) - [97%] - 2011/4/25 21:32
- + JavaScript の質問用スレッド vol.79 + (1001) - [97%] - 2010/9/11 6:50
- + JavaScript の質問用スレッド vol.84 + (1001) - [97%] - 2011/3/30 7:32
- + JavaScript の質問用スレッド vol.80 + (1001) - [97%] - 2010/11/9 2:17
- + JavaScript の質問用スレッド vol.83 + (1001) - [97%] - 2011/2/24 8:02
- + JavaScript の質問用スレッド vol.119 + (1002) - [95%] - 2014/10/3 15:30
- + JavaScript の質問用スレッド vol.139 + (1001) - [95%] - 2019/5/27 15:15
- + JavaScript の質問用スレッド vol.129 + (981) - [95%] - 2016/5/5 8:16
- + JavaScript の質問用スレッド vol.129 + (926) - [95%] - 2017/7/27 13:45
- + JavaScript の質問用スレッド vol.109 + (1001) - [95%] - 2013/10/7 13:16
- + JavaScript の質問用スレッド vol.94 + (1001) - [95%] - 2012/1/8 15:46
トップメニューへ / →のくす牧場書庫について