JavaScript 名前空間 2

| トラックバック(0)

昨日のはこれ。

2008/10/24 javascript 名前空間

evalを使い過ぎて重すぎたので改良。evalは一回になった。まぁ、実用に堪えられると思う。
以下コードとソース。

function Namespaced(packagedObjectName, obj){
  var DOT = '.';
  var EXPRESSION_TEMPLATE =
    "if(!tmp){tmp={};}else if(typeof(tmp)!='object'){throw new Error('Namespace error');}";
  var ns = packagedObjectName.split(DOT);
  var here = 'window';
  var expression = '';
  obj == null ? obj = {} : void(0);

  //評価式文構築
  for (var i = 0, l = ns.length; i < l; i++){
    var tmp = here + DOT + ns[i];
    expression += EXPRESSION_TEMPLATE.replace(/tmp/g, tmp);
    here = tmp;
  }

  //オブジェクト代入式
  expression += here + ' = obj;';
  //評価
  eval(expression);
}

http://chrhsmt.com/js/namespace.js

トラックバック(0)

このブログ記事を参照しているブログ一覧: JavaScript 名前空間 2

このブログ記事に対するトラックバックURL: http://blog.chrhsmt.com/mt-tb.cgi/132