-1

http://jsfiddle.net/zzTsc/

我有一个 JSON,其中包含一些连接成字符串的值,但是当我更改 JSON 的值时,字符串不采用名称值。如何在不重新声明相同字符串的情况下使字符串采用新值?

请参阅我可以轻松地将其放在string = name.first + "<br />"+name.last;更改 JSON 值的下方,但是当我想编辑该字符串的格式时,我必须更改它两次。

4

3 回答 3

2

这不是变量的工作方式。您必须再次设置 的值string才能更新。

这是一个改进的版本,因此如果您想编辑某些内容,则不必更改两次:

function generateString(name) {
    return name.first + "<br />"+name.last;
}
var string = generateString(name);

演示

于 2012-11-22T01:02:30.647 回答
1

这不会像您描述的那样起作用,但是您可以声明一个返回适当字符串的函数。

所以而不是

string = name.first + "<br />" + name.last;

你会有:

var stringfunction = function() {return name.first + "<br />" + name.last;}

当你想使用它时,你会调用它:

alert(string); //old
alert(stringfunction()); //new

编辑:我刚刚意识到您正在谈论更改格式(大概在运行时)。在 javascript 中有多种使用字符串格式的方法,这意味着您可以在 中使用“格式”变量stringfunction,您可以在运行时更改该变量以修改结果字符串的格式。自从我使用其中一种工具以来已经太久了,所以我将把它留给其他人来解释如何在 javascript 中进行字符串格式化。

于 2012-11-22T01:02:57.740 回答
0

这是因为您的字符串是基本类型,因此包含实际数据而不是指针。当您更改您认为应该更改字符串的数据时,它只会更改数据。只需重新发布用于构造字符串的代码即可看出这一点

$('#test').empty().append(name.first + "<br />"+name.last);

http://jsfiddle.net/zzTsc/4/

于 2012-11-22T01:03:00.723 回答