1

私は公開モジュール パターンを使用し、名前空間を持っていますFoo.Bar.Baz

それを文字列に変換するにはどうすればよい"Foo.Bar.Baz"ですか?

(そうすると、目的の文字列ではなくmynamespace.toString()生成されます。)"[object Object]"

4

1 に答える 1

2

Revealingモジュール パターンの非常に単純化されたバージョンを使用します。

var revealed = function(){
   var a = [1,2,3];
   function abc(){
     return (a[0]*a[1])+a[2];
   }

   return {
      name: 'revealed',
      abcfn: abc
   }
}();

toString公開されたオブジェクトにオーバーライドを含めることができます。

var revealed = function(){
   var a = [1,2,3];
   function abc(){
     return (a[0]*a[1])+a[2];
   }

   return {
      name: 'revealed',
      abcfn: abc,
      toString = function(){ return "revealed"; }
   }
}();

これは、revealed.toString()最初に試みたように使用して呼び出すことができます。公開されたオブジェクトにサブオブジェクト (名前空間) が含まれている場合、個々のtoString実装は子オブジェクトを呼び出してtoString、ドット (または適切なもの) で連結できます。

于 2013-04-09T15:47:10.400 に答える