复制代码 代码如下: <BR>var str = 'abced'; <BR>var obj = new String(str); <BR>function newToString() { <BR>return 'hello,world'; <BR>} <BR>function func(val) { <BR>val.toString = newToString; <BR>} <BR>func(str); //ps:实际只传入了str的值,因此对它的toString修改是无意义的 传入的str相当于是他的一个副本 修改副本的方法 不影响原来的运算结果 <BR>alert(str.toString()); //结果为 abced <br><br>func(obj); //ps:传入了一个对象的引用(即str本身,或者说是内存地址),因此对它的toString修改将会影响到后来 alert(obj.toString()) 的云寻 <BR>alert(obj.toString()); //结果为 hello,world <BR> 附: JavaScript中的值类型与引用类型 数据类型 值/引用类型 备注 undefined 值 无值 number 值 boolean 值 string 值 字符串在赋值运算中会按引用类型的方式来处理 function 引 object 引js的值类型和引用类型