2005-01-01から1年間の記事一覧

JS におけるオブジェクトとは

周知の話の繰り返しとなってしまいますが、ちょっと基本に立ち返ってみたいと思います。JSON (JavaScript Object Notation) というものがあります。JS のオブジェクト記法に基づいたコード受け渡しの仕組みですが、ここではその記法そのものを見ていきます。…

prototype.js の Class 拡張試案 (3): Mixin

Update: 末尾に追記がありますid:reinyannyan:20051028:p1 で、Class.Methods というものを導入してみました。全てのオブジェクトでデフォルトのメソッドとして使えたら便利、というものをまとめておき、インスタンス生成時に自動的に組み込まれるように仕掛…

prototype.js の Class 拡張試案 (2): 継承とスーパークラスへのアクセス (Update:20060301)

前回 id:reinyannyan:20051116:p1 の内容に幾つか問題点がありましたので、修正や解決策を新しいページにてお知らせします (今後も、新たに問題が発現すればこちらに追記したいと思います)。 Class.extend まず、新しいクラス継承の方法として Class.extend …

prototype.js の Class 拡張試案 (2): 継承とスーパークラスへのアクセス

(注意: この記事には幾つか問題点があります。次の記事 id:reinyannyan:20051118:p1 で修正しますので、そちらと併せてお読みください。)prototype.js は、JavaScript というプロトタイプ・ベースのオブジェクト指向言語 (クラスが存在しない = 全てがオブジ…

prototype.js の Class 拡張試案 (Main, Singleton etc.)

Update [20060301]: id:reinyannyan:20051118:p1 の末尾に修正点を追記しましたのでご覧下さい。 id:reinyannyan:20051015:1129388215 において、prototype.js の Object.prototype 汚染の問題を紹介させて頂きました。その文脈の中で、(コーディングの便の…

XMLHTTP で Bloglines Notifier

Tip

Windows ユーザーで Bloglines ユーザーの私は、デスクトップの右下でこんなことをしています。 これは意外と知られていない機能なんじゃないでしょうか。タスクバーの項目にウェブ・ページを指定できるという機能です。JavaScript なり VBScript で書いたペ…

Ruby的配列イテレータの実装 (prototype.js)

開発版 prototype.js を読んでみて、かなり勉強になる内容だったので、何点かメモしておきたいと思います。まず、for ループで配列要素ごとに関数(クロージャ)呼び出しをするという、最も一般的な部分は、ひとつのメソッドとして独立させています。引用す…

オブジェクト、配列のコピー

JavaScript では、オブジェクトや配列を関数に渡す時、常にポインタが使われます。いわゆる copy by reference ですね。変数に代入する場合も同様です。当然メモリー効率を配慮した設計な訳ですが、どうしてもコピーが欲しい時もあるものです。配列のコピー…

prototype.js の extend メソッド

prototype.js の提供する便利な機能の一つに、extend によるオブジェクトの拡張があります。prototype.js の中でも、クラスの継承等、随所に使われています。ところが、これには問題があるんですね。id:nazoking:20050425:1114374966 id:secondlife:20051007…

Singleton Pattern

Update [20060309]: この記事は id:reinyannyan:20060309:p1 でアップデートされました こちらの記事 id:naoya:20050813:1123924312 を読んで、JavaScript における Singleton クラスの実装について、しばらく考え込んでみました。結局のところ、メソッド側…

Ruby的イテレータ: each

JavaScriptで配列を扱う時に困った経験はないでしょうか? 例えば、オブジェクトのリストがあって、個々のオブジェクトに対して固有のクロージャ*1を割り当てたい場合、for ループで回すと、実際にクロージャが呼び出される頃にはカウンタは既に回り切ってい…