タグ

closureに関するfacetのブックマーク (10)

  • Javascript Closures

    The documents under faq_notes/ are unmaintained. An up-to-date version of this document may be available at /faq/notes/closures/. Introduction The Resolution of Property Names on Objects Assignment of Values Reading of Values Identifier Resolution, Execution Contexts and Scope Chains The Execution Context Scope chains and [[scope]] Identifier Resolution Closures Automatic Garbage Collection Formin

  • クロージャについて - FAX

    クロージャについて メモ mattさんから、コメント欄にて以下のリンクを頂いた。どうも、ありがとうございます。 いやなブログ - JavaScript とクロージャ 上記サンプルは、以下の流れだ。 全ドット分のセルを作る 各セルのイベントハンドラに、一つずつ関数を割り当てる マウスの動きに合わせて、関数のスコープに保存されている「色の濃さの情報」を更新する 先程のブログのエントリの中で、「色の濃さの情報」をDOMエレメントに保存してもよかったとある。つまりここでは、関数の背景にある情報を保持する領域*1がポイントになっている。 JavaScriptのクロージャとは、「関数 + スコープ」だ。 ファウラーさんのblikiを読む。ここからは、関数を関数として渡せると便利なことを学べる。しかし、それはクロージャの理解の丁度半分なのではないだろうか。 Martin Fowler’s Bliki -

  • http://www.interq.or.jp/student/exeal/dss/ejs/3/3.html

  • ECMAScript で変数やメソッドを隠蔽する方法

    指向性メモ::2005-07-24::クロージャベース・オブジェクト指向による JavaScript の記事にあったものを改良し、汎用的に使えるようにしてみた。 Object.prototype.createChild = function(source){ function Temp(){}; Temp.prototype = this; var childObject = new Temp; if(source instanceof Object){ childObject.extend(source); } return childObject; } Object.prototype.extend = function(source , deeply){ if(!(source instanceof Object)){ throw new Error; } for(var prope

    ECMAScript で変数やメソッドを隠蔽する方法
    facet
    facet 2005/10/06
  • 指向性メモ::2005-07-24::クロージャベース・オブジェクト指向によるJavaScript

    ページ情報 制作日 2005-07-24T15:16:45+09:00 最終更新日 2005-09-03T14:29:47+09:00 ページ内目次 Navigation Comments Trackbacks Post a comment 前回の試行錯誤中に気がついたアイデア。クロージャでクラス定義すればthisとか煩わしくなくて良いのではないかという説。名づけて、クロージャベース・オブジェクト指向。 function Person(_name) { var methods = { __constructor: function() {name = _name; }, getName: function() { return name ; }, getType: function() { return "Person"; } }; methods.__constructor(); ret

    facet
    facet 2005/10/06
    これ面白いなあ
  • 指向性メモ クロージャとOOPとJavaScriptの謎仕様

    ページ情報 制作日 2005-07-24T03:14:49+09:00 最終更新日 2005-10-28T11:35:21+09:00 ページ内目次 Navigation Comments Trackbacks Post a comment JavaScriptはクロージャでガリガリ書いていく言語だという説もあるが、OOP原理主義としてはプロトタイプベースでもいいからOOPで書きたいのである。というか、クロージャは中途半端で気持ち悪い。 さて、事の発端は『JavaScript とクロージャ』という記事である。この記事によると、なにやらイベントにクロージャを渡すと幸せになれるという事らしい。ふむふむ、たしかにシンプルでいい感じである。 ……が、しかしだ。オブジェクト指向なアレに対して、クロージャには決定的な弱点が有るはずなのだ。そう、メソッド(クロージャ)間での(メンバ)変数の共有である。

  • http://www.interq.or.jp/student/exeal/dss/ejs/1/3.html

  • web.paulownia.jp - JavaScriptとクロージャ

    Java等のオブジェクト指向はクラスベースのオブジェクト指向と呼ばれる。一方、JavaScriptはプロトタイプベース、あるいはインスタンスベースオブジェクト指向と呼ばれる。 クラスベースは、まずクラスを定義し、クラスを型とするインスタンスを作成することでプログラミングする。プロトタイプベースによるオブジェクト指向では、クラスの定義は必須ではなく場合によってはクラスという概念自体が存在しない。既存のオブジェクトのクローンとして新しいオブジェクトを作成し、そのオブジェクトに独自の性質を付加してプログラミングする。 JavaScriptのオブジェクトの性質は動的に変更可能。Java等では一度決定したオブジェクトの振る舞いは変更できないが、JavaScriptでは実行中の任意の場所でメソッドの動作を変更したり、新しく追加したり、削除したりすることができる。

  • Flash でクロージャ。 : torus solutions!

    Flash はクロージャが使えて便利です。 しかし、 最近はオブジェクト指向とか ActionScript 2.0 ばかり取り沙汰されて、 あまりクロージャの便利さが知られていない感じがします。 難しいオブジェクト指向の勉強はとりあえず先延ばしにしておいて、 気楽に使えるクロージャで楽しく ActionScript のプログラミングをしてみませんか? お題:N フレーム目に○○せよ たとえば、 Flash のムービーを再生して 5 フレーム後に、 指定したコードを走らせるには、 どうすればいいでしょうか? ムービークリップの第 5 フレームに、 実行させたいアクションを書けばいいだけです。 しかしこの方法は、 問題をちょっと一般化するだけで使えなくなります。 この 5 フレームの「5」という数値が予めわかっていない場合は、 上の方法は使えませんね。 onEnterFrame では「5 フレ

  • いやなブログ: JavaScript とクロージャ

    JavaScript とクロージャ JavaScript プログラミングはなかなかおもしろいよ、と知人に言ってみたところ、 全然信用されずに怪訝な顔をされる、という目に遭いました。 クロージャが使えて DOM ツリーにイベントハンドラを簡単に追加できるよ、と続けると多少は興味を持ってもらえるようなので、クロージャを使ったサンプルプログラムを書いてみました。 箱の中でマウスカーソルを適当に動かしてください。 このプログラムでは各セルの色の濃さをクロージャを使って保持しています。makeHandler という関数の depth という変数がそれです。クロージャを使うと、個々のイベントハンドラごとに独立した状態を簡単に持たせされるのがポイントです。 別にクロージャを使わなくてもいいようなプログラムですが (クロージャではなく DOM のエレメントに状態を持たせるとか)、こういう風にも書けるよ、と

  • 1