タグ

javascriptに関するmagelixirのブックマーク (34)

  • Internet Explorer リーク パターンを理解して解決する

    Justin Rogers Microsoft Corporation June 2005 日語版最終更新日 2006 年 2 月 3 日 Web 開発者の進化 以前は、メモリ リークは Web 開発者にとって大きな問題ではありませんでした。ページは比較的単純に保たれ、サイト内の異なるロケーション間のナビゲーションは解放されたメモリをクリーンアップするうえで優れた方法でした。リークがあった場合も、たいていは気付かないほど小さなものでした。 新しい Web アプリケーションは、より高い標準に従います。ページはナビゲートされずに何時間も実行され、Web サービスを通じて更新情報を動的に取得する場合があります。複合イベント スキーム、オブジェクト指向の JScript、およびアプリケーション全体を生成するためのクロージャを組み合わせることで、言語機能が限界点に達します。これらの変更およびその他

  • や...やっと理解できた!(2) JavaScriptのスコープチェーン - maeharinの日記

    前回はJavaScriptのプロトタイプチェーンについて、図解を用いることでなんとか理解できました。今回はスコープチェーンに挑戦してみます。前回と同じく「1. 図解を用いる」「2. 用語を明確に定義する」「3. Standard ECMA-262 3rd editionを情報ソースとする」というアプローチで紐解いて行きます。 用語の定義 ・エントリの文章における表記は、以下の表の「ECMA-262 3rd」に統一する ・エントリの図における表記は、以下の表の「エントリの略称」に統一する ・エントリ内におけるES3とは、Standard ECMA-262 3rd editionを指す ECMA-262 3rd エントリの略称 JavaScript(サイ)第5版(日語) Execution Contexts EC 実行コンテキスト Variable Object VO 変数定義の

    や...やっと理解できた!(2) JavaScriptのスコープチェーン - maeharinの日記
    magelixir
    magelixir 2013/06/12
    わかりやすい。すっきりした!
  • JavaScriptデザインパターン – 第1部:シングルトン、コンポジット、ファサード | Adobe Developer Connection

    Basic JavaScript programming knowledge. Additional required other products (third-party/labs/open source) Query Library Download / Learn この記事は、JavaScriptでよく使用されるデザインパターンに関するシリーズ記事の第1部です。デザインパターンはプログラミングにおける実証済みの手法であり、特に、大規模なJavaScriptアプリケーションを大きなグループで作成する場合に不可欠なコードの保守性、スケーラビリティ、分離性を向上させます。 このシリーズ記事の第2部では、さらに、アダプター、デコレーター、ファクトリという3つのデザインパターンを紹介します。第3部では、さらに、プロキシ、オブザーバー、コマンドという3つのデザインパターンを紹介します。 シング

  • 外部JavaScriptの動的ロード - os0x.blog

    JavaScriptからJavaScriptを読み込むのは、(IEに対応する場合は特に)結構面倒です。 ちょうど昨日公開されたid:amachangのはてブにアクセスチャートを出す Greasemonkeyでは、こんな実装になっていました。 // for IE if (!document.evaluate) { var script = document.createElement('script'); script.src = 'http://svn.coderepos.org/share/lang/javascript/javascript-xpath/trunk/release/javascript-xpath-0.1.11.js'; document.body.appendChild(script); var callee = arguments.callee; var inter

    外部JavaScriptの動的ロード - os0x.blog
  • [Javascript] new 演算子を理解するためリンク集

    最近はよく JavaScript 関連のエントリーを良く読むのですが、new 演算子について書かれているエントリーに書いてある内容がいまいちよくわかりません。オブジェクトのインスタンスを作成することができるのは分かるのですが、実際に運用した時の可読性・保守性・実行速度等がどうこうという議論についていけません。new 演算子の理解が難しいのは prototype と絡み合っているからではないかと感じています。逆に言えば、new 演算子と prototype を理解することができれば、JavaScript を「習得した」状態への確実な一歩になるに違いありません。そこで理解できるようになるまで読み返し続けたいエントリーを挙げます。 主に new 演算子についてピンポイントに取り上げているエントリーを選んでいます。他にもエントリーが見つかったら随時追加していきます。 JavaScript の ne

    [Javascript] new 演算子を理解するためリンク集
  • ReFlowの原因とマークアップの最適化 « NAVER Engineers' Blog

    自己紹介 ネイバージャパンのUIT(User Interface Technology)チームの裵完理(ベワニ)です。 概要 CSSJavaScriptを使って複雑なデザインや動的なページを実装しているサービスが増えてきていますが、速度低下などの問題が発生しやすくなっています。これを100%直すことは難しいですが、改善するにはブラウザレンダリングプロセスを理解する必要がありますので、理解した上で改善方法を探してみましょう。 ブラウザレンダリングプロセスの理解 ブラウザの基構造 User Interface – アドレスバー、戻る・進むボタン、ブックマークメニューなど、メインウィンドウに表示(document)されるページ以外の部分 Browser Engine – UIとレンダリングエンジン間のアクションを制御するもの Rendering Engine – リクエストしたコンテンツを表

  • コンパイルするとJavaScriptに! Rubyライクに記述できる「CoffeeScript」とは?

    JavaScriptプログラマーの間で「CoffeeScript」を使う人が増えています。CoffeeScriptとは一体どんな言語なのか、そして実際の現場で使うにはどうしたらいいのか、この連載を通して解説していきます。Webブラウザ向けのフロントエンド開発にも、そしてサーバサイド開発にも使える内容となっています。 CoffeeScriptが登場する前 JavaScriptは広く普及している言語ですが、ソースコードは見苦しいものになりがちです。小さなプログラム程度なら構いませんが、大規模なプログラムを作るのはかなり骨が折れる作業です。冗長な記号や面倒な決まり文句などが積み重なると、読みづらくメンテナンスしづらいソースコードができてしまいます。 JavaScriptを使ってある程度の規模の開発を経験したプログラマーの多くはそのような不満を感じ、もう一度JavaScriptで大きな開発をしたい

    コンパイルするとJavaScriptに! Rubyライクに記述できる「CoffeeScript」とは?
  • showModalDialog で渡した パラメータは、submit しても同じ維持される。 - お だ のスペース

    メモ 最初は、submit したら消えてなくなると思ってました。 parent.html <script language="JavaScript"> function modal(){ var x = [0, 1, 2]; window.showModalDialog( './child.html', x, "dialogWidth=200px; dialogHeight=120px;" ); alert(x); } </script> <input type="button" value="モーダル" onClick="modal()">child.html <script language="JavaScript"> function modal_end(){ alert(window.dialogArguments); var ary = window.dialogArgument

    showModalDialog で渡した パラメータは、submit しても同じ維持される。 - お だ のスペース
    magelixir
    magelixir 2011/12/07
    同じwindowオブジェクトならそりゃそうなるか…?ブラウザ依存激しそうな仕様だな
  • JavaScriptのDOM Core基礎 - 三等兵

    Coreの簡易リファレンス。Coreは要素を参照したり、相対位置から周りのノードを参照したり、要素を生成するといった部分。主に利用するであろうプロパティやメソッドはカバーしているつもりですけど、これも入れとけってのあったら教えてください。 このあたりは地味で使いづらくその上理解しにくいという残念な部分。ふと忘れたときに使う個人的なものですが、慢性jQuery拒絶症候群な人よかったらどうぞ。それにしても暑い。ガリガリ君おいしいね。 DOMとは。 Document Object Model (DOM) は、HTML および XML ドキュメントのための API です。これはドキュメントの構造的な表現を提供し、内容や表示形態の変更を可能にします。端的に言えば、Web ページをスクリプトやプログラミング言語とつなぐような機構です。 https://developer.mozilla.org/ja/

    JavaScriptのDOM Core基礎 - 三等兵
    magelixir
    magelixir 2011/11/22
    jQuery使いたくても使えないときとかここで思い出してゴリゴリ書く
  • jQueryのfilterとfindの違い

    jQueryで要素を対象要素を絞ろうと思ったときに限って、idで抜き出すのが難しかったりする。 そんなとき便利なのが、findメソッドとfilterメソッド。 けど、この2つは一見非常に良く似ている。ここに違いをメモしておく。 次のようなHTMLがあったとします。 <div>hgoe1</div> <div>hgoe2</div> <div>hgoe3</div> <div class="hoge">hgoe4</div> <div> <span class="hoge">hgoe5</span> </div> そこからfilterメソッドとfindメソッドでそれぞれ要素を抽出し、 抽出された要素からclass="hoge"のものを抜き出して処理を行います。 $(function() { // filterメソッド $('div').filter(function (index) { re

    magelixir
    magelixir 2011/10/25
    なるほどね
  • Collection & Copy - JavaScriptにおける古典的継承

    翻訳 原文:Classical Inheritance in JavaScript著者:Douglas Crockford ※原文のコード内に誤りがあり、このまま記述しても動作しません。著者のコメント及び補足情報は翻訳メモを参照下さい。 君は自分が利口で階級にも属さず 自由だなんて思い込んでる―John LennonJavaScriptは、クラスという概念に囚われていない言語です。JavaScriptでは、古典的な継承の代わりにプロタイプ的な継承を使用します。これはC++Javaのような旧来のオブジェクト指向言語に長けたプログラマを当惑させるかもしれません。JavaScriptのプロトタイプ的継承が、古典的継承に比べていかに表現力が優れているかを、これから見ていきましょう。 JavaJavaScript強い型付け弱い型付け静的動的古典的プロトタイプ的クラス関数コンストラクタ関数メソッド関

    magelixir
    magelixir 2011/10/24
    逆行するようだけど基本としておさえる
  • JavaScript におけるクラスの作成と継承 - vivid memo

    JavaScript はプロトタイプベースのオブジェクト指向言語であり、クラスという概念を持っていない *1、というのはよく言われることですが、new 演算子とコンストラクタとプロトタイプを使うことでクラスのようなものを作ってインスタンス化することが可能です。 さらに、プロトタイプを使ってクラスの継承も実現できます。 この記事では、JavaScript においてクラスベースの言語と似たようなことをする方法について説明します。 用語 まずは用語の説明をします。 ECMAScript (5th edition) *2 に書かれているものを訳しました。 コンストラクタ (constructor) オブジェクトを生成し、初期化する関数オブジェクト プロトタイプ (prototype) 別のオブジェクトに共有されたプロパティを提供するオブジェクト プロパティ (property) オブジェクトの一部

    JavaScript におけるクラスの作成と継承 - vivid memo
    magelixir
    magelixir 2011/10/24
    素直にクラスベース継承を実現するならこうかな
  • new を不当に貶める陰謀と JavaScript におけるクラスの継承構造の話 - vivid memo

    私は陰謀論者じゃないですし JavaScript の new 演算子が大好きなわけでも大嫌いなわけでもないです。 念のため。 記事は Hiraku さんが書かれた下記記事への言及です。 newを封印して、JavaScriptでオブジェクト指向する(1) newを封印して、JavaScriptでオブジェクト指向する(2) newを封印するべき4つの理由 new 演算子は使うな!? 「newを封印するべき4つの理由」 でも new がいかに糞であるかが書かれていますし、その記事からも言及があるように Crockford さんが書かれた書籍 『JavaScript: The Good Parts ―「良いパーツ」によるベストプラクティス』 でも new 演算子は Bad Parts に分類されています。 new 演算子が忌避される理由はいろいろあるみたいですが、Hiraku さんの記事では n

    new を不当に貶める陰謀と JavaScript におけるクラスの継承構造の話 - vivid memo
    magelixir
    magelixir 2011/10/21
    プロトタイプ継承とクラスベースの継承が整理できた。しかしまぁ厄介な言語だ
  • newを封印するべき4つの理由

    ちょっと勢いに任せて書いちゃったので攻撃的な文章になってます。。 すごくわかりやすい解説記事を頂いたので、こちらも必読です。 new を不当に貶める陰謀と JavaScript におけるクラスの継承構造の話 - vivid memo (追記:2011/5/15) 前の記事「newを封印して、JavaScriptでオブジェクト指向する」が思いのほか反響が大きかったので、調子に乗って補足を書いてみますよ。 ブコメへの返信 「無用な複雑化に見える。」「俺俺オブジェクト指向な気がする。」といったご意見もいただいたんですが、普通たった10行の関数でオレオレオブジェクト指向なんて作れないですよ…。JavaScriptの内部機構をほとんどそのまま使っているからこそ、この行数で済むのです。 それに、このプロトタイプ的継承の考え方をDouglas Crockfordが編み出したのは、もう5年も前の話です。E

    newを封印するべき4つの理由
    magelixir
    magelixir 2011/10/21
    newのデメリット。使う側の問題を考えると難しいところ。
  • newを封印して、JavaScriptでオブジェクト指向する(2)

    前回の続きです。サンプルコードは前回から続いていると思ってください。 privateは諦めましょう 親のメソッドを呼ぶ コンストラクタ instanceofに対応する ダックタイピングのススメ 今回もobject関数を使うので再掲載。 /* * object - オブジェクトを作る * Object object(BaseObj [, mixinObj1 [, mixinObj2...]]) */ function object(o) { var f = object.f, i, len, n, prop; f.prototype = o; n = new f; for (i=1, len=arguments.length; i<len; ++i) for (prop in arguments[i]) n[prop] = arguments[i][prop]; return n; } ob

    newを封印して、JavaScriptでオブジェクト指向する(2)
    magelixir
    magelixir 2011/10/21
    privateは諦める…。Min-inできるんだから親は一意に決まらない。instanceofは…な、なんだって!?
  • newを封印して、JavaScriptでオブジェクト指向する(1)

    以下はプロトタイプ的継承だけで一通りの機能を実現できる、という一つの例です。もちろん他にも書き方はありますし、newを使うのがよくないと主張しているわけではないです。 (誤解を生みそうな文体が混じっているようなので追記: 2011/5/14) 春ですし、少し初心者向けの記事を書きます。タイトル通り、JavaScriptのオブジェクト指向について。ちょっと長くなるので目次です。 クラス(に相当するオブジェクト)を作る オブジェクトからオブジェクトを作る(インスタンス化) 単一継承 多重継承 privateは諦めましょう 親のメソッドを呼ぶ コンストラクタ instanceofに対応する ダックタイピングのススメ JavaScript標準のオブジェクト指向といえばnewやらprototypeやらを書く必要がありますが、これらは書くのが面倒臭い上に気をつけないといけない点がたくさんあります。Ja

    newを封印して、JavaScriptでオブジェクト指向する(1)
    magelixir
    magelixir 2011/10/21
    こういう解説を探していた。しかしこういうインスタンス化はデバッグツールによってはオブジェクト名が表示されない…まあいいけど
  • Prototypal Inheritance

    Prototypal Inheritance in JavaScript Douglas Crockford www.crockford.com Five years ago I wrote Classical Inheritance in JavaScript (Chinese Italian Japanese). It showed that JavaScript is a class-free, prototypal language, and that it has sufficient expressive power to simulate a classical system. My programming style has evolved since then, as any good programmer's should. I have learned to full

    magelixir
    magelixir 2011/10/20
    で、あとでこれを考えよう…
  • Private Members in JavaScript

    Private Members in JavaScript Douglas Crockford www.crockford.com JavaScript is the world's most misunderstood programming language. Some believe that it lacks the property of information hiding because objects cannot have private instance variables and methods. But this is a misunderstanding. JavaScript objects can have private members. Here's how. Objects JavaScript is fundamentally about object

    magelixir
    magelixir 2011/10/20
    継承のスコープを考えるなら、とりあえずここいらが基本か
  • 「勝手に添削 - JavaScript 入門」を勝手に添削 - IT戦記

    このエントリーは以下のエントリーへの解答です 404 Blog Not Found:javascript - 勝手に添削 - JavaScript入門 はじめに 僕はあまりブログを一生懸命書くのは嫌いです。で、いつも適当に言葉は少なめにソースだけで解説しているが。今回は、それだけでは伝わらないところまで突っ込まれてしまったので、僕が伝えたかった意図をこと細かく説明していこうと思います。 文章が苦手なので、変な言い回しで読み辛かったりすると思いますがよろしくお願いします。 一応、弾さんには断っておきますが、別に弾さんに噛みついている訳ではないです。ただ、弾さんのような有名人に突っ込まれたら、僕の講義を聞いてくれたエンジニアが嘘を教えられたと不安になってしまうのではないかと思ったのです。僕の講義を聞きにくれた人には、虚像でもいいから 100 % の自信と勇気を付けて欲しい(プログラムを書く上で

    「勝手に添削 - JavaScript 入門」を勝手に添削 - IT戦記
    magelixir
    magelixir 2011/10/20
    なるほど。理解が深まった。
  • [JavaScript] prototypeに直接代入しちゃうのってダメじゃなかったっけ? / LiosK-free Blog

    2010-02-02 カテゴリ: Client Side タグ: JavaScript トラックバック JavaScript基礎文法最速マスター - なんとなく日記という記事がはてブ界隈で話題になっていたので、徒然なるままに読んでみて心に浮かんだことをそこはかとなく書きつけてみる。 まず、どうでもいい細かい点につっこみを入れておくと、「callとapplyは外せないでしょ?」とか「undefinedに限らず、かなりの数の値がオブジェクトではないですよ [注1]」とか「"use strict";してるとhoge();の形で呼び出された場合はthisは window (グローバルオブジェクト)にならないらしいですよ[注2]」とか「for in文ではまりがちな落とし穴って配列走査周りじゃね?」とかいろいろあるんだけど、まあこの辺は別にどうでもいいや。 気になったのは、クラス定義の解説のセクション

    magelixir
    magelixir 2011/10/20
    ダメかどうかというと、そもそも安全の確保なんて出来ないというか。