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ではエラーになってしまう。(しかもエラーメッセージが不可解だから気づきにくい事この上ないのだ)