如何在Javascript中赋值期间附加字符串值?

时间:2010-03-11 09:36:26

标签: javascript variable-assignment

嘿,我不知道这是否可行,但我想通过引用在js中设置一个给定的变量。

我想要做的是,每次我将字符串传递给函数addstring时,都会添加文本字段的值,如 + =

function addstring(string)
{
    document.getElementById("string").value = string; // its a textfield

}

我该怎么做?

7 个答案:

答案 0 :(得分:9)

Javascript不支持通过引用传递参数。

此链接提供了良好的细分和一些解决方法 - Passing by Value or reference

答案 1 :(得分:2)

如果它是对输入文本字段的引用,那么您可以使用value属性

function addstring(string)
{
    document.getElementById("string").value += string.value;

}

参见 value

答案 2 :(得分:1)

+=效果很好。

var str = "stack";
str += "overflow";

console.log(str); //alert(str); Use firebug!!
  
    

计算器

  

答案 3 :(得分:1)

您的代码示例可以正常使用+=;完整的例子如下。这表明你在其他地方存在的问题。

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-type" content="text/html;charset=UTF-8">
<title>Test Page</title>
<style type='text/css'>
body {
    font-family: sans-serif;
}
</style>
<script type='text/javascript'>
function addstring(string)
{
    document.getElementById('string').value += string;
}
</script>
</head>
<body><div>
<input type='text' id='string' value=''>
<br><input type='button' value='One' onClick="addstring('one');">
<input type='button' value='Two'     onClick="addstring('two');">
<input type='button' value='Three'   onClick="addstring('three');">
</div></body>
</html>

答案 4 :(得分:0)

document.getElementById("string").value = document.getElementById("string").value + string;

答案 5 :(得分:0)

您可以通过首先将对象转换为JSON(注意循环引用)来克隆该对象,然后再将其解析回来。像这样:

function clone(obj) {
  return JSON.parse(JSON.stringify(obj));
}

这使用内部浏览器的JSON例程(比使用外部资源更安全和更快)。如果您只是必须具有向后兼容性,则可以从JSON.org下载核心JSON例程。

答案 6 :(得分:-1)

Javascript不支持通过引用传递参数 - 不正确

实际上确实如此。原型设计可以创建对各种javascript对象(包括字符串)的真实引用。

真实参考我的意思是:

  • 对变量或对象所做的更改 通过引用传递是 反映在实际变量上 通过
  • 所有人都看到了这种变化 引用相同的变量
  • 每个人都知道参考资料 更改引用的变量

创建对变量的真实引用:

  • 创建构造函数
  • 对您的参考变量进行原型设计 构造函数
  • 不要用变量声明变量 构造函数中的相同名称 功能<!/ LI>
  • 创建一个change()函数 更改原型变量或更改 直接
  • 可选:创建一个change()函数引用 在你设置的构造函数中 到ChangeRef()函数uppon 创建

将看到以这种方式进行的更改,并且可能会被所有其他TestRef()对象更改

function TestRef(s) {
    this.string = 'Own test-string: ' + s;
    this.change = ChangeRef;
}
function ChangeRef(s) {
    TestRef.prototype.refStr = s;
    return TestRef.prototype.refStr;
}
r = 'RefStr';
TestRef.prototype.refStr = r; // PROTOTYPE => 'RefStr', copy of r

s = new TestRef('s'); // Obj.string = Own test-string: s, Obj.refStr = RefStr
o = new TestRef('o'); // Obj.string = Own test-string: o, Obj.refStr = RefStr
ChangeRef('ChangedStr');  // Change referenced string!
TestRef.prototype.refStr; // => ChangedStr, referenced string changed
r; // => RefStr, original string intact
x = new TestRef('x'); // Obj.string = Own test-string: x, Obj.refStr = ChangedStr. New sees changed string
s; // => Obj.string = Own test-string: s, Obj.refStr = ChangedStr. Old sees changed string
o; // => Obj.string = Own test-string: o, Obj.refStr = ChangedStr. Old sees changed string
s.change('Changed by local function');
x; // => Obj.string = Own test-string: o, Obj.refStr = Changed by local function