简单聊聊JavaScript中的Object的toString方法:
1.toString(返回一个代表具体对象的字符串),可以返回返回任何任何值,但一般要携带对象的属性信息
看下面一个例子:
function Person(name,age,sex,address){
this.name=name;
this.age=age;
this.sex=sex;
this.address=address;
}
以上是我声明的一个Person的对象类型。
下面创建一个JS对象:var peter=new Person('peter','23','Male','北京市海淀区');
下面给Person的toString方法指定一个具体的方法:
function personToString(){
var ret="{"
for(var prop in this){
ret+="("+prop+":"+this[prop]+")";
}
ret+="}";
}
Person.prototype.toString=personToString;
测试数据:
alert(peter.toString);
打印的具体值如下:
{(name:peter)(age:23)(sex:Male)(address:北京市海淀区)(toString:function personToString(){ var ret="{" for(var prop in this){ ret+="("+prop+":"+this[prop]+")"; } ret+="}"; return ret; })}
从以上结过可以看出不是我想要得到的字符串,要把toString:的那一段去掉,怎么办,那就修改一下personToString函数。
function personToString(){
var ret="{"
for(var prop in this){
if(prop=="toString"){
continue;
}
ret+="("+prop+":"+this[prop]+")";
}
ret+="}";
}
再测试一下,结果如下:
{(name:peter)(age:23)(sex:Male)(address:北京市海淀区)}
这是我想要得到的字符串。
从这个小例子可以注意到
for(var prop in this){}
可以遍历所有属于Peron的属性和方法(包括toString),要想达到专门的字符串,需要跳过一些方法。