20151031 - kyosen/javascript-ninja GitHub Wiki
第9章 実行時のコード評価
9.1 コード評価機構
- オブジェクトリテラルを括弧で囲わないとどうなる?(伊藤)
- プロパティ値そのものが返る。 eval('{ninja:1}') は 1 が返る
- 以前、オブジェクトリテラルに . でアクセスできなかった例と関係ある? ({ninja:1}.ninja はエラー)
- 9.1.1 「IE9より前のバージョンには、この構文の実行に問題があった」どんな問題?(井谷)
- クロージャを継承するとは?(乙村)
- 関数外の変数や関数にアクセスできるということ
- 9.1.1の最初のほうに書かれている「現在のコンテキストで実行する」を意味していると思われる
- Function コンストラクタの場合は現在のコンテキストは利用できない
- 9.1.2 クロージャが生成されないとは?
9.2 関数の「逆コンパイル」
- 特になし
9.3 コード評価の実践
-
リスト9-7 3行目 「base2.namespace ==」 は「base2.namespace = 」の間違いでは(矢野)
- 「==」のままでもテスト通る。なぜ?(井谷)
- manning が提供しているソースでは、base2.namespace に別のものが既に代入されている
- 誤植ページにも記載がある
-
9.3.4 Screw.Unit の実装例は何をしている?
- describe や it など関数の生成と実行をしている
- 最初の fn は describe の内容を含んでいる関数
-
9.3.5 の前で終了