[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
しかも、少し最近のwindows updateで変更された!? っぽいです。というのもそのままのコードで昔はエラーが出ないで今は出るからです。
具体的には、以下の例1の "p3_value", のカンマがあると、エラーになります。
例1
props = {
p1 : "p1_value",
p2 : "p2_value",
p3 : "p3_value",
}
正しい書き方は例2の通りになります。
例2
props = {
p1 : "p1_value",
p2 : "p2_value",
p3 : "p3_value"
}
個人的に例1の書き方でも良いんじゃないかな~と思ったりするんですがね~。
これは、ハマるという話。
というかハマった。
というかそれは気づかないよ、という話。
javascriptとactionscriptに for in という構文があるんですが、配列の参照が javascriptは最初から(慣れてる)、actionscriptは後ろからなんですよ!
actionscript3.0もそうなのかな。
それより忍者ブログにはタグ機能がないから、javascriptとactionscript(まだないけど)みたいな複数のカテゴリに記事が投稿できない。不便だ。hatenaにでも移動するかなー。
ソース:javascript
var array_value = new Array(1,2,3);
for ( i in array_value){
document.write(array_value[i]+"<br/>");
}
結果:
1
2
3
ソース:actionscript2.0
var myArray:Array = [1, 2, 3];
for (var i:String in myArray) {
trace(myArray[i]);
}
結果:
3
2
1
actionscript書いて色々ためしてたら、EventListenerについてきになって、jsではどうなってたかなーと思って色々やってみた。
以下の通り書くと、hogehoge をクリックした際に2つの関数が呼ばれる。おーすげー。
#Firefoxしか動きません。IEとかは別の書き方しないと。やっぱりブラウザ依存は悩み物。
<html>
<head></head>
<body>
<div id="id1">hogehoge</div>
<script type="text/javascript">
var idEle = document.getElementById("id1");
if(! idEle.addEventListener){
alert("false")
}
idEle.addEventListener("click",listenFunc1,false);
idEle.addEventListener("click",listenFunc2,false);
function listenFunc1(){
alert("func1");
}
function listenFunc2(){
alert("func2");
}
</script>
</body>
</html>
ま、それは良い。
idEle.addEventListener("click",listenFunc2, false); の第3引数で false としているが、これは useCapture を意味しているのですが、よく分からなかったのでしらべてみたらMozillaのAPIリファレンスにこう書いてあった。
trueの場合、useCaptureは、ユーザがキャプチャを開始したいことを示しています。キャプチャの開始後、指定されたタイプのイベントの全てが、まず、登録されたlistenerにディスパッチされ、その後、DOM ツリーにおいてその下に位置する任意のEventTargetにディスパッチされます。ツリーをたどって上方へバブリングするイベントは、キャプチャを用いるように指定されたリスナーを誘発することはありません。詳細な説明は、DOM Level 3 Events を参照していください。
DOM Level 3 Events を参照。イメージは分かるんだけど、実際どうなのよ?って感じ。英語だし。
さらにググッてみると、分かり易い人発見!
http://wiki.bit-hive.com/tomizoo/pg/JavaScript%20addEventListener()
ここ見れば一撃だけど、ようは useCapture=true とすると、useCapture=trueと指定したノードの、子ノードでイベントが発生した場合は、子ノード自体に割り当てられたイベントより先に、イベントが発生する(captureしている)、ということらしい。
javascript リファレンス
https://developer.mozilla.org/ja/JavaScript
注意。この記事はメモなので、思ったままにづらづら書いています。
少し前ですが、Ajaxで一躍再評価をされたりしましたが、個人的には、ゴリゴリDOM操作できる所が魅力だと思っていたりします。
javascriptのオブジェクトには、prototypeというオブジェクトが常に付属しているという話を色々な所で目にしたりして、なんとなく分かっていたような気はしていたんですが、ちょっと分からなくなったので調べて見ました。
とりあえずこのサイトをみて意味を理解。っていうか昔本読んだ気もするのだが完全に忘れてしまっていた……orz
http://codezine.jp/article/detail/222?p=1
あ、prototype.jsというライブラリもありますが、これは別物ですな。
日本語訳あるし、ecmascriptの仕様に目を通しておくとなにかと良いかなと思ったり。
http://www2u.biglobe.ne.jp/~oz-07ams/prog/ecma262r3/index.html
| 06 | 2026/07 | 08 |
| S | M | T | W | T | F | S |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 | 31 |