hasFeature DOMにおける document.implementation.hasFeature() の、各ブラウザでの値。 確認用ページ DI.hasFeature()Firefox 1.0WinIE 6.0Opera 7.53MacIE 5.1Safari 1.2.3
Copyright (C) Mainichi Communications Inc. All rights reserved. 掲載記事の無断転載を禁じます
プロトタイプベースとは? 前回の記事で「JavaScriptで登場するデータは、(一部の例外を除き)すべてオブジェクトである」「JavaScriptにはクラスが存在しない」と説明したが、これをさらに正確に表現するならば、「JavaScriptでは、(Javaなどの言語に見られる)クラスという抽象化された概念は存在しない。存在するのはインスタンス化されたオブジェクトだけだ」となる。すなわち、JavaScriptでは、すべての"モノ"が実体(インスタンス)であり、クラスとインスタンスという概念が区別されない。 これは、Javaなどの"クラスをベースにする"オブジェクト指向言語に慣れた開発者ほど、理解し難い概念かもしれない。しかしながら、あまり難しく考える必要はない。単に「JavaScriptの世界で新しいモノを作り出すうえでは、クラスという抽象化された概念を考慮する必要はない」というだけのこと
prototype-based object oriented 。 オブジェクトがスロット(クラスのインスタンスならインスタンス変数やメソッドに相当)の追加をクラスに依存せずに自由にできることを前提としたオブジェクト指向。あるいはそうしたオブジェクトを用いたプログラミングや、それをサポートする機構。 「インスタンスベース」、「オブジェクトベース」とも。 これらへの言い換えは「プロトタイプベース」という言葉が持つ限定的なニュアンスを払拭するのにおおいに役立つ。しかし同時に、前者の「インスタンスベース」において特に、“プロトタイプベースにはクラスがない”あるいは“プロトタイプベースはクラスベースの対極にある(あるいはアンチテーゼである)”といったような教科書的記述に惑わされている人をひどく混乱させるらしく、極端な拒絶反応を示す人もいるので注意。また、後者においては、オブジェクトオリエンテッド=
12月15日、JavaScript、正式にはECMAScriptと呼ばれる言語の仕様策定が完了したとEcma Internationalが発表しました(ECMAScriptは、JavaScriptの基となる仕様の名称です)。 今回承認されたのはECMA-262 5th edition(ECMAScript 5th Edition)と呼ばれる仕様で、いわゆるJavaScript 2.0と呼ばれるものです。12月3日にはEcma Internationalの第98回総会において承認されていました。 (追記:ECMAScript 5th EditionがJavaScript 2.0として実装されるかどうかは不明でしたので、修正します。タイトルにも「JavaScript 2.0」が含まれていたので、タイトルも合わせて変更しました。) ECMAScriptの最新仕様は4月に最終候補が提出されており、
お題 今回は↓のコードリーディングをしました。 jQuery1.3.2のliveHandler周り jsDeferredのnext,wait,call,loopあたり liveHandler jQueryのlive関数 http://semooh.jp/jquery/api/events/live/type%2C+fn/ 簡単に言うと、指定したセレクタに将来的にマッチするものも対象にするbindです。 今回の収穫 ・liveは内部的にはdocument Objectに対してbindしている。 ・document Objectはclickイベントの発火が他のDOMと違い、右クリックでも反応する。 ・つまりliveでclickイベントを対象にしたら右クリックと左クリックを判別しないとだめ。 document Objectのclickイベントの動作は知らなかったー。 きっとはまるポイントだろうな
[UPDATE] I have updated this with information gleaned from http://jibbering.com/faq/faq_notes/closures.html on the true nature of closures and performed an experiment. Its worse than I thought. The 'shotgun' nature of scope closure in JavaScript means that its very easy to write leaky code. One of the problems with JavaScript is that you can make an effective closure over objects that are not expl
Justin Rogers Microsoft Corporation June 2005 日本語版最終更新日 2006 年 2 月 3 日 Web 開発者の進化 以前は、メモリ リークは Web 開発者にとって大きな問題ではありませんでした。ページは比較的単純に保たれ、サイト内の異なるロケーション間のナビゲーションは解放されたメモリをクリーンアップするうえで優れた方法でした。リークがあった場合も、たいていは気付かないほど小さなものでした。 新しい Web アプリケーションは、より高い標準に従います。ページはナビゲートされずに何時間も実行され、Web サービスを通じて更新情報を動的に取得する場合があります。複合イベント スキーム、オブジェクト指向の JScript、およびアプリケーション全体を生成するためのクロージャを組み合わせることで、言語機能が限界点に達します。これらの変更およびその他
未だに半年前のエントリにブクマされるみたいなので、もう少しjavascriptについて書いてみる。 今回は大規模化開発におけるJavascriptの注意点とかそういうの。当てはまらない環境の方もいます。(しかも基本的な事だらけで大したことは書いてないです) ほぼリッチクライアントを主目的としたjavascripterとコードを対象とします。 どちらかというと、ライブラリを提供する側の視点から 1.ログを出力せよ あなたが書いたコードは遅い、と必ず言われます。なので言われる前から、自分の書いたコードの処理時間をログするようにしましょう。 次のような処理時間を計測するロガーを作ります。 var TraceLog = function (){ this.startTime = -1; var outer = document.getElementById('_outer'); if(oute
正規表現オブジェクトをどのように配置すれば効率的なのか調べました。 配置パターン A. ループ内にべた書き function job(expr, n) { var i = 0, match; for (var i = 0; i < n; ++i) { match = /regexp1/.exec(expr); match = /regexp2/.exec(expr); } } B. スコープ内(ループの外)に配置 function job(expr, n) { var i = 0, match, REX1 = /regexp1/, REX2 = /regexp2/; for (var i = 0; i < n; ++i) { match = REX1.exec(expr); match = REX2.exec(expr); } } C. 5つ外側のスコープに配置 (function() {
WYSIWYG Editor, Rich Text Editor, HTML Editor いろいろ呼び方あるけれど カズキ先生との HTML の編集についての話で出てきたリッチ テキスト エディタについて調べてみました。 リッチ テキスト エディタとは、入力したデータと出力したデータの見た目が一致するテキスト エディタの事を指します。 今作りながら見ている物がそのまま出力結果となる、この事を用語で WYSIWYG: "What You See Is What You Get" と言います。 というわけで、今回作るのがこちらです。 作り方 エディタの基礎 編集領域を準備する 内容を編集する エディタの基礎 今見ているブラウザがそのままエディタになります。エディタにするには、JavaScript で document オブジェクトの designMode プロパティを "on" にします。
© Thiemo Mättig, created in September 2007 More JavaScript experiments »
ブラウザの表示領域を取得するに当たって、「ブラウザの種類」×「表示モード(標準/互換)」によって参照するプロパティが変わってきます。 IE、FireFox、Opera、Safariにて、表示モード毎に参照すべきプロパティをまとめてみました。(Safariについては2007/05/20に追記) 調査したのは、下記のプロパティです。 window.innerWidth window.innerHeight document.body.scrollWidth document.body.scrollHeight document.body.offsetWidth document.body.offsetHeight document.body.clientWidth document.body.clientHeight document.documentElement.scrollWidth d
先日ベータ版が公開されたGoogleオリジナルのブラウザ「Google Chrome」。「無駄を削ぎ必要な機能のみを追求した」というのが謳い文句だが、その一方でウェブ開発者向けの機能が充実している点も見逃せないポイントだ。 高機能なJavaScriptコンソール Google Chromeはウェブ開発者向けの機能として、デフォルトでJavaScriptコンソールとJavaScriptデバッガが付属している。特にJavaScriptコンソールの方は、Firefoxのアドオンとして著名なFirebugに劣らない高機能さであり、実務でも十分に使えそうだ。 ChromeのJavaScriptコンソールおよびJavaScriptデバッガは、[開発/管理]メニューから起動できる(図1)。
さて、アナウンスしていたようにIEでposition: fixed;を実現する手法について簡単にまとめておきます。まぁこのテクニックもIE7が出るまでのつなぎです。やり方は大まかには2通りあって、純粋にCSS(スタイルシート)のみで指定する方法とJavaScript(正確にはMS独自のDynamic property ダイナミックプロパティーと呼ばれるもの)を使うやり方です。 まず、1.CSSのみの方法から 1.基本的な考え方は、HTML(あるいはBODY)タグのスクロールバーを非表示にして、かわりにDIVタグ(HTMLならBODYタグ)のスクロールバーを表示させる方法です。具体的な記述は以下のようになります。 html { overflow: hidden; } body { height: 100%; overflow: auto; } 次に、固定表示したいDIVタグ(タグは何でも良い
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く