ECMAScript

詳細 ECMA-262-3 第3章 this

目次 はじめに 定義 グローバルコード上の this 値 関数コード上の this 値 Reference 型 関数呼び出しと非 Reference 型 Reference 型と null の this 値 コンストラクタとして呼び出された関数での this 値 関数呼び出し時に手動で this を指定する 結論 …

ECMAScript と OOP パラダイム、それに ES.next の議論中 OOP 周りのシンタックス

JavaScript Advent Calendar 2011 (オレ標準コース)4日目の id:oogatta です。どうもどうも、いやどうも。最近丁度 ES Wiki を眺めていて、面白いことになってるなあ。変態的なことになってるなあ。と楽しく見ていた OOP パラダイム周りのいくつかの手法(定…

syntactical な解釈と semantical な解釈

例えば代入。syntactical /構文上では、 AssignmentExpression : ConditionalExpression LeftHandSideExpression AssignmentOperator AssignmentExpression LeftHandSideExpression : NewExpression CallExpressionなので、 new Object() = 1; (function tes…

"native object" と "built-in object" と "host object"

ECMAScript5.1 の仕様では "native object"、"built-in object"、"host object"は次のように定義されています(適当訳)。 前提 ECMAScript実装 Rhino 、 SpiderMonkey 、 JScript 、 JSC 、 V8 、 Carakan …: ホスト環境 Firefox 、 Internet Explorer 、 G…

詳細 ECMA-262-3 第2章 変数オブジェクト

目次 はじめに データ宣言 様々な実行コンテキストにおける変数オブジェクト グローバルコンテキストにおける変数オブジェクト 関数コンテキストにおける変数オブジェクト コンテキストコード処理のフェーズ 実行コンテキストへの進入 コードの実行 変数につ…

詳細 ECMA-262-3 第1章 実行コンテキスト

訳者によるまえがき 私が以前、「コア・JavaScript ( JavaScript. The Core. )」と題して、 ECMAScript に関する Dmitry Soshnikov さんのすばらしい記事を翻訳させていただいてから、1年が経ってしまいました。継続して Dmitry さんの記事を訳していくとお…

ECMAScript の(構文上の)ごく基本的な構造

とてつもなく基本的なことでありながらいつも忘れてしまうのでここにメモしておく。Program → Statement → Expressionが基本的な流れ。これ以外の代表的な要素としては…。 Block は Statement の下。さらに Statement を含める(複文を作れる)。 Expression…

コア・JavaScript ( JavaScript. The Core. )

この文章は、 Dmitry A. Soshnikov さんの、 ECMAScript に関する優れた記事 "JavaScript. The Core." を許可を得て翻訳したものです。世の中に、 JavaScript のブラウザ API や、実装系に関する記事は多々あれど、 ECMAScript の仕様に則って、ここまで詳し…

ECMA3 での OOP 思考実験

型仙人と恐れられた私も、さすがに ECMA3 の仕様をちゃんと読んだら考えが変わってきた。 ECMA3 が提供する OOP に使えそうな主な特徴 動的な具象オブジェクトベースの prototype チェーン 動的なオブジェクト 静的なスコープチェーン それぞれの主な使い途 …

今日の驚き ECMAScript

※だれかはてなダイアリーで角括弧二つの連続 [[Unko]] をちゃんと出す手法教えてください…。今、わざわざ a タグで囲ってる始末…。 new new といえば JS の OOP のキモ中のキモ。 new って何してるの?というと…、http://bclary.com/2004/11/07/#a-13.2.2こ…

カンマ演算子と VariableDeclarationList

不思議だった ECMAScript 3 で僕がずっと不思議に思っていたことが今日 kzys 先生に教えてもらって解決したので書き留めます。 var i=0,j=0,k=0; よくこういう書き方をしますよね。僕はこのカンマをずっとカンマ演算子のカンマだと思って、カンマ演算子だと…

今日の知っ得まる得 ECMAScript

ECMAScript の名前解決は Scope チェーンと Prototype チェーンの2次元探索です。 詳しくは、 [[HasProperty]] 内部関数の仕様を見るとよく分かるぜ。ちなみに、 [[Prototype]] 内部プロパティは実装系によっては __proto__ として実装されていますので読み…

今日の知っ得まる得 ECMAScript

ECMAScript の Execution Context ECMAScript の Execution Context の項は読めば読むほど味わい深い大変なごちそうなのでありますが、ここをもにもにと読んでいたら知らなかったことがあったのでメモ。ECMAScript の Excecution Context には3つのタイプが…