猿问

请问一个js重写tostring方法的问题?

function f(){};

f.prototype.toString=function(){

alert(this)

};

var p=new f();

p.toString();

这个会报错 Uncaught RangeError: Maximum call stack size exceeded     at f.toString (%E5%BC%B9%E5%87%BAthis.html:11)     at f.toString (%E5%BC%B9%E5%87%BAthis.html:11)     at f.toString (%E5%BC%B9%E5%87%BAthis.html:11)     at f.toString (%E5%BC%B9%E5%87%BAthis.html:11)     at f.toString (%E5%BC%B9%E5%87%BAthis.html:11)     at f.toString (%E5%BC%B9%E5%87%BAthis.html:11)     at f.toString (%E5%BC%B9%E5%87%BAthis.html:11)     at f.toString (%E5%BC%B9%E5%87%BAthis.html:11)     at f.toString (%E5%BC%B9%E5%87%BAthis.html:11)     at f.toString (%E5%BC%B9%E5%87%BAthis.html:11)

把tostring改下名就可以运行了,这是为什么


慕盖茨0887536
浏览 2057回答 2
2回答

qq_小盛开_0

toString 是关键字

海角风桥

系统默认函数名为ToString  你的重定义和系统默认重名了
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答