技術的なことなど

プロパティの再代入禁止を検討すると

今回は、前回の記事の技術的なことなどを詳しく考えていきます。
前回の記事でof メソッドでプロパティを指定しました。

base("$plus").of( {
  x: 12,
  y: 15,
  call: function() {
    return this.x + this.y;
  }
} );

このプロパティの再代入禁止をどうするかについては、Object.defineProperty を使いたかったです。

base("$plus").x = 15; //プロパティの再代入を試みているので、どうにかしたい

ところが、IE8では、エラーが出ました。この関数はDOMオブジェクトだけで使えるようです (注1)。また、キャッシュがききませんので、採用をやめました。

関数型プログラミングとの関係について

関数型プログラミングというと、クロージャや関数の合成や、第一級関数やmapメソッドなどを思い浮かべる方もいるのですが、クロージャは、すでにSIEのコーディングに取り入れています。
その苦労した開発経験から、今回はこのような形になっています。
base.jsのof メソッドのアイデアとしては、「ラムダ計算の束縛変数をインターフェースとして公開する」という点です。
オブジェクト指向プログラミング + 関数型プログラミング = base.jsのようになったらいいなという気持ちで、気軽に開発していきます。

今後の予定

base.jsを使って、SMILアニメーションの実装をします。