如果字符串是不可变的,这是否意味着......
(我们假设是 JavaScript)
var str = 'foo';
alert(str.substr(1)); // oo
alert(str); // foo
这是否意味着,当对字符串调用方法时,它将返回修改后的字符串,但不会更改初始字符串?
如果字符串是可变的,这是否意味着第二个alert()
会回来oo
还有?
这意味着一旦实例化该对象,就无法更改其属性。在您的第一个警报中,您没有更改 foo.您正在创建一个新字符串。这就是为什么在第二个警报中它将显示“foo”而不是 oo。
这是否意味着,当调用方法时
一个字符串,它将返回修改后的
字符串,但不会改变
初始字符串?
是的。字符串一旦创建就无法更改。现在这并不意味着您不能将新的字符串对象分配给str
多变的。您只是无法更改 str 引用的当前对象。
如果字符串是可变的,那么
意味着第二个alert()将返回oo
还有?
从技术上讲,不会,因为 substring 方法返回一个新字符串。使对象可变,不会改变方法。使其可变意味着从技术上讲,您可以使子字符串更改原始字符串而不是创建新字符串。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)