我使用了揭示模块模式,并有一个名称空间Foo.Bar.Baz
。
如何将其转换为字符串"Foo.Bar.Baz"
?
(如果我mynamespace.toString()
它会产生"[object Object]"
而不是所需的字符串。)
答案 0 :(得分:2)
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
并使用点(或任何适当的)连接。