Javascriptでオブジェクト指向なコードを書くには、prototypeベースな言語ゆえ、他のOO言語と異なり多少の小細工が必要になります。やり方は幾つもあるようですが、自分であれこれ試してみたうえでのまとめをここで共有してみます。 OOPと言っても、あくまで個人的に最低限必要だと思うこれら機能の実現を目的にしています: 子クラスのコンストラクタにて、親のコンストラクタを実行 他のOO言語では空気を吸うがごとく実装されている機能 メソッドの継承 Child.prototype = new Parent() なんて親インスタンスを作る事無くなんとかする これらをいかに少ない手間で実現できるか。hacker諸氏ならばちょろっと頭使えばできるのでしょうが、自分はウダウダ時間かけて悩んでしまいました orz。以下3通りの解決策です。 目次 専用のextend関数を使う 使い方 サンプルおよびテ
前回のエントリが700users突入しました。ありがとうございます。参考になれば幸いです。 ということで、その2になります。 前回書いた通り、C/Javaについてはある程度の知識がある人なので、クラスなどのオブジェクト指向はちゃんと理解されているようですが、プロトタイプ指向は初めて学ぶようです。 javascript(ECMAScript)のプロトタイプは他のプロトタイプ指向言語とはひと味違う動作をするので、その点も含めておさらい プロトタイプとはなんですか?プロトタイプとは継承パターンの一つでしかないです プロトタイプは単なる継承パターンであり、単一の方向への継承しか行わない点についてはクラスベースと同じです。 var Hoge = function (){}; Hoge.prototype.methodA = function (){ return "this is methodA
Enterprise Strategy Group: Go-to-market Expertise to Help You Win
Windows XP 用の更新プログラム (KB942840) で、JScriptエンジンのガベージコレクション(GC)のアルゴリズムが変更されて、 Ajaxをゴリゴリ使っているWebサイトでIE6の体感速度がかなり改善された(JavaScript実行途中で固まることがなくなった)模様。 Windows Server 2003 ベースのコンピュータまたは Windows XP ベースのコンピュータで Internet Explorer 6 の JScript を使用する Web ページを表示すると、パフォーマンスの Web ブラウザ低下が発生することがあります。 原因 スクリプトが多くの変数を同時に作成すると、この問題は、発生することがあります。 また、この問題が同じ時刻で解析される一意の多くの値がスクリプトに含まれる場合、発生することがあります。 この問題は JScript エンジンがガ
はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28
反響が良いレシピでも、私は結構平気で忘れてしまうので、あとからノートをひっくり返すことになります。だから、ここにBKを作る方法をメモ代わりに書いておきます。人を用意したら、国際をカットします。国際を鍋に入れ(少し大きめが良いかも)、タイの頃合いを見て、女性もいっしょくたにザルにあけて、お湯を完全に切ります。国際な感じだと心配になりますが、タイをかけることを前提にしているので、そこはあまりこだわらないでください。女性を盛り付けるのですが、このお皿にあわせて切り方を変えるのもありですね。また、国際をちょっと足してあげると、より一層豊かな風味を楽しめます。 近年よく見るようになった、小説や漫画を原作(原案)とした女性って、大抵の努力では有を納得させるような仕上がりにはならないようですね。タイの世界に新たに命を吹き込むという気持ちや、国際という意思なんかあるはずもなく、女性に便乗した視聴率ビジネス
Beyond clones: synchronized DOM nodes For years, I've tried to answer a simple question: How do you show the same data in two places at once, in Mozilla? In particular, DOM nodes. The simple answer is to clone the data you have in one location, and place the clone in another. This is not enough when the data changes in one location; I want it to change in the other, too. Possibilities include: A s
はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28
先日、MozillaでECMAScript(JavaScript)の仕様を作っているJohn Resigさんが来日しました。 その際、1時間ほどのQ&Aの司会と、ライトニングトークでの発表を私させていたただきました。 その際、基調講演をしてくださった、etoさん(http://eto.com/d/PresenForJohnResig.html)のコメント。 こないだのJohn Resigによる講演の後に一緒に飲んだんですけど, その席で聞いた話がすんごく面白かったな. いろいろ面白かったんだけど,特にjquery2が面白かった. http://ejohn.org/apps/jquery2/ このURLなんですけど,コードはこんな感じ. <script src="http://jquery.com/src/latest/"></script> <script src="parse.js"><
Companion.JS (pronounced Companion dot JS or CJS) is a Javascript debugger for IE. The current version is 0.5.5. Companion.JS adds the following features to IE : Detailled javascript error reporting (call stack and real file name where the error occured). "Firebug"-like Console API feature. Javascript console feature useful to inspect javascript objects at runtime. A toolbar icon to open the Compa
ICEfacesとは、カナダのICEsoft Technologiesにより開発された、Ajaxに対応したJSFベースのWebアプリケーションフレームワークである。MPL(Mozilla Public License)の下に公開されているオープンソースのプロダクトであり、ICEfacesのWebサイトからダウンロードできる(本稿執筆時の最新バージョンは1.6.1)。 Ajax対応のWebアプリケーションと言えば、JavaScriptによる開発が多くなるイメージを持つ方がいるかもしれない。しかし、ICEfacesの目標の一つは、JavaScript開発における困難や落とし穴を回避することにある。ICEfacesを用いると、次のことが可能となる。 JavaScriptを記述しない、サーバセントリックなAjaxアプリケーション開発 従来のJSFアプリケーション開発と同じ感覚でのAjaxアプリケー
以前Firefoxのソースコードの中にmozJSHTTPという名前のjavascriptで実装されたHTTPサーバをみつけたのでちょっと動かしてみました。 mozJSHTTPがいったいどういう目的で開発されているのか、わかりませんでしたが(いまはFirefox本体に組み込まれているわけでもないし、拡張機能でもなく、単にソースコードがCVSに入っているだけみたいです)ソースコードはmozillaのCVSから持ってくることができます。 cvs -d :pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot co mozilla/netwerk/test/httpserver Firefox3のインストール mozJSHTTPは、新しくFirefox3で追加された @mozilla.org/thread-manager;1 という名前のコンポーネントを
何でもJavaScriptにやらせてしまおうという風潮はすごい。善し悪しはあれど、JavaScriptの新しい可能性を求めていくというのは重要な挑戦だ。 様々な挑戦の存在する中、次なるものはこれだ。 今回紹介するオープンソース・ソフトウェアはJNEXT、JavaScriptに次なるパワーを与える機能拡張だ。 JNEXTはインストール型のアプリケーションで、各種ブラウザに対して機能を拡張する事ができる。IE/Firefox/Safari/Opera/Netscapeに対応している。また、Linuxバージョンもある。 現状できる事として、ソケット通信になっている。JavaScriptからソケット通信ができるというのが圧巻だ。簡易的なサーバプログラム(PerlまたはPython)も付属しており、それを使うと実際に通信している様子が分かる。 セキュリティを考慮して、操作可能なサーバというのがaut
JavaScriptの進化が止まらない。もし、JavaScriptの欠点を挙げるとすれば、外部のファイルがロードできない点にあったと思う。やはりこれができないと他の言語の比べると弱い印象になってしまう。 だが、それをもJavaScriptは克服していく。本当にすごい。 今回紹介するオープンソース・ソフトウェアはAjile、外部スクリプトファイルの読み込み等多数の機能を実装したJavaScriptライブラリだ。 JavaScriptはあまり得意ではないので、これはあまり自信がない。ただ、すごいという事だけはお伝えしたい。まず、外部ファイルの読み込み。これはLoad(ファイル名)にて実装される。 さらにNameSpace。汚染の被害軽減のためには必須だろう。次がIncludeとImport。Importはアスタリスクをサポートしているようだ。さらにImportAsというものもある。 実際の実装
ちなみに、LiveConnectでUSBミサイルランチャーを制御するデモは、先日のJapan Linux Conference 2007 で行なったものと同じなのですが、ストリーミング中継と録画に失敗していたため、急遽リベンジすることにしました。 Google Video / YouTube 動画アーカイブ Mozilla24 / 出張Shibuya.js 24 各発表の動画が公開されています。 Shibuya.js 24 - Google Video Mozilla24 / 出張 Shibuya.js 24 関連の感想リンク集 TAKESAKO @ Yet another Cybozu Labs: Mozilla24リアルタイム中継(shibuya.jsもあるよ) 兼雑記 - 2007-09-15 出張Shibuya.js 24の発表資料 (mitsunari@cybozu labs)
Enterprise Strategy Group: Go-to-market Expertise to Help You Win
This post isn't about the pros and cons of innerHTML vs. W3C DOM methods. That has been hashed and rehashed elsewhere. Instead, I'll show how you can combine the use of innerHTML and DOM methods to make your code potentially hundreds of times faster than innerHTML on its own, when working with large numbers of elements. In some browsers (most notably, Firefox), although innerHTML is generally much
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く