ひとまず今年の出張期間終了
確か、当初は4月までって聞いていたような気もするけれど……それは、たぶんソラミミ。
2007/12/27(木) 22:23 | 固定リンク
| コメント (2)
| トラックバック (0)
2007/12/27(木) 22:23 | 固定リンク
| コメント (2)
| トラックバック (0)
というルールに集約されるのかな、と理解しています。
- あるオブジェクトのプロパティとして関数が呼び出される場合、thisは当該オブジェクトを指す。
- 上記以外の場合には、thisはGlobalオブジェクト(ブラウザの実装では通常"window")を指す。
のようになるのかな、と。
- 関数がコンストラクタ(constructor)として呼ばれた場合(var obj=new <関数名>()のようにnewを付けて呼びだした場合)、その関数は新規に作成されたオブジェクトのプロパティとして呼び出される。
従って、ルール1から関数内のthisは新規に作成されたオブジェクトを指す。- 関数がcallもしくはapplyで呼びだされた場合(<関数名>.call(<オブジェクト>,<引数1>[,<引数2>...])、もしくは、<関数名>.apply(<オブジェクト>,<引数の配列>))、その関数はcallもしくはapplyの第1引数(<オブジェクト>)に指定されたオブジェクトのプロパティとして呼び出される。
従って、ルール1から関数内のthisは第1引数で指定されたオブジェクトとなる(言い換えると、関数内で"this"として扱いたいオブジェクトをcallもしくはapplyの第1引数で明示出来る)。- Global領域で'function <関数名>(){...}'もしくは'var <関数名>=function(){...}'で定義された関数は、Globalオブジェクト("window")のプロパティとなる。
従って(この関数が<関数名>を直接指定して呼び出される場合)ルール1から関数内のthisはGlobalオブジェクトとなる。- 関数内で'function <関数名>(){...}'もしくは'var <関数名>=function(){...}'で定義された関数は、オブジェクトのプロパティではない。
従って(この関数が<関数名>を直接指定して呼び出される場合)ルール2から関数内のthisはGlobalオブジェクトとなる。
2007/12/22(土) 03:16 | 固定リンク
| コメント (0)
| トラックバック (0)
3.(右辺が名前付き関数)の書き方をしたあとで、右辺の関数名(例では'test')をtypeofしてみると、IE6ではfunction、Firefox/Operaではundefinedになる(IE6ではtest()で呼びだし可能、Firefox/Operaでは例外発生)。ってことでしょうかね。
IE6では、3.(右辺が名前付き関数)の前に 1.(通常の名前付き関数)の形式で 3. の右辺と同名の関数(例では'test')が定義されていると、3. によって上書きされてしまう。という現象が発生してしまいます(サンプルの[CASE-2])。 2.のように右辺が無名関数になっていればそんな現象は起らないのですが、うっかり 3. のように右辺に関数名をつけて書いてしまうと、なかなか見つけにくいバグが発生しそうです。
({test:(function test() {p("TEST");})})のように設定されます。
var TEST=(function(){return {test:(function test() {p('TEST');})}.test;})();のようにしてやっても、Firefoxでは 3. の場合と同様の動きになります。
あるいはもっとシンプルに
var TEST={test:function test() {p('TEST');}}.test;
2007/12/18(火) 04:14 | 固定リンク
| コメント (0)
| トラックバック (0)
element.innerHTML='(HTML)';とする代わりに、
replaceInnerHtml(element,'(HTML)');として使用します。
| THEAD要素 |
|---|
| 下のボタンを押して試して下さい。 |
| TFOOT要素 |
原因
TABLE と TFOOT と THEAD と TR 要素の innerHTML プロパティは、読み取り専用です。
状況仕様といわれてしまってはそれまでですが、やっぱり直接書換えたいような場合もあるんじゃないかなぁ、と思って上記のような関数を作成してみたしだい。
この動作は、仕様です。
linkElement.innerHTML='<a href="http://~">hoge</a>';のようにすると『未知の実行時エラーです。』と出ることに、『りんくぽっぷ』を作っていて気が付きました。
2007/12/09(日) 14:09 | 固定リンク
| コメント (0)
| トラックバック (0)
elms.push(text.substring(sindex,(eindex)?eindex:text.length).replace(sreg,''));の部分は
elms.push(text.substring(sindex,(eindex)?RegExp.index:text.length));に変えた方が速くなりそうですね。
2007/12/08(土) 16:22 | 固定リンク
| コメント (0)
| トラックバック (0)
| table要素 |
|---|
| 下のボタンを押すと、テーブルが初期化されます。 |
2007/12/08(土) 16:20 | 固定リンク
| コメント (0)
| トラックバック (0)
<a href="http://ja.wikipedia.org/wiki/%E6%97%A5%E6%9C%AC%E8%AA%9E" id="testlink">http://ja.wikipedia.org/wiki/%E6%97%A5%E6%9C%AC%E8%AA%9E</a>のようなリンク(http://ja.wikipedia.org/wiki/%E6%97%A5%E6%9C%AC%E8%AA%9E)がある場合。
| 1. | 元のURI | |
| 2. | リンクオブジェクトのhref値 | |
| 3. | 1をunescapeしたもの | |
| 4. | 1をdecodeURIしたもの | |
| 5. | 3をescapeしたもの | |
| 6. | 4をencodeURIしたもの |
2007/12/04(火) 00:39 | 固定リンク
| コメント (0)
| トラックバック (0)
のように下向き矢印のアイコンが表示されます。これをクリックすると、
![]()
のように、リンク一覧が表示され(最初はNON-VISITED LINKS)、アイコンが上向き矢印になります(再度クリックするとリンク一覧を閉じます)。
![]()
のように、VISITED LINKSも表示されています。
![]()
MOONGIFT様
読んでいないものだけ「まだ読んでない」
まだ読んでない
2007/12/01(土) 05:53 | 固定リンク
| コメント (0)
| トラックバック (0)