Dojoをちょっぴり真面目に網羅的に調査 dojo.lang編(1)の続き

dojo.lang.mixin()とextend()の続き

一応テストしてみる。

load("dojo.js");
dojo.require("dojo.lang.*");

var a = new Object;
a.hoge = function() {
    print('hogehoge');
};

var b = new Object;
dojo.lang.mixin(b, a);
a.hoge(); // hogehoge
b.hoge(); // hogehoge

function Hoge() {
}

dojo.lang.extend(Hoge, {
    "fuga" : function() {
        print("fugafuga");
    },

    "b" : 123
});
var h = new Hoge;
h.fuga();    // fugafuga
print(h.b);  // 123

// 組み込み型も拡張可能、これぞJavaScriptの醍醐味?
dojo.lang.extend(String, h);
"hogehoge".fuga(); // fugafuga

特に問題なし。

ところで、JSON形式で記述したオブジェクトの最後のメンバの後(上の例では"b":123の後ろ)にカンマ(,)を付けてしまうとIEでエラーになるので気をつけること>自分。何度はまったことか……。FirefoxはスルーしてくれるがIEではエラーになってしまう。(しかもエラーメッセージが不可解だから気づきにくい事この上ないのだ)