Как добавить строковое значение во время присваивания в Javascript? - PullRequest
4 голосов
/ 11 марта 2010

Эй, я не знаю, возможно ли это, но я хочу установить данную переменную в js как reference .

Что я хочу сделать, так это чтобы каждый раз, когда я передаю строку в функцию addstring, значение текстового поля добавлялось как + =

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

}

Как я могу это сделать?

Ответы [ 7 ]

9 голосов
/ 11 марта 2010

Javascript не поддерживает передачу параметров по ссылке.

Эта ссылка предлагает хорошую разбивку и некоторые обходные пути- Передача по значению или по ссылке

2 голосов
/ 11 марта 2010

Если это ссылка на введенный текстовый файл, вы можете использовать свойство value

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

}

См. значение

1 голос
/ 11 марта 2010

Ваш пример кода будет отлично работать с +=;полный пример ниже.Это говорит о том, что проблема у вас лежит в другом месте.

<!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>
1 голос
/ 11 марта 2010

+= отлично работает.

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

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

StackOverflow

0 голосов
/ 24 мая 2012

Вы можете клонировать объект, сначала преобразовав его в JSON (обратите внимание на циклические ссылки), а затем снова проанализируйте его. Вот так:

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

При этом используются процедуры JSON внутреннего браузера (безопаснее и быстрее, чем при использовании внешнего ресурса). Если вам просто нужна обратная совместимость, вы можете загрузить основные подпрограммы JSON с JSON.org.

0 голосов
/ 13 мая 2011

Javascript не поддерживает передачу параметров по ссылке - Не верно

На самом деле это так. Прототипирование позволяет создавать истинные ссылки на все виды объектов JavaScript, включая строки.

Под истинной ссылкой я имею в виду, когда:

  • Изменения, внесенные в переменную или объект передается по ссылке отражается на фактической переменной пройдено
  • Изменение видят все ссылки на одну и ту же переменную
  • Каждый, кто знает ссылку, может изменить указанную переменную

Чтобы создать истинную ссылку на переменную:

  • Создать функцию конструктора
  • Прототип ваших ссылочных переменных на конструктор
  • НЕ объявляйте переменные с то же имя внутри конструктора работать!
  • Создать функцию change (), которая изменяет прототипную переменную или делает так прямо
  • Необязательно: Создать ссылку на функцию change () внутри вашего конструктора, который установлен к функции ChangeRef () создание

Изменения, сделанные таким образом, будут видны и могут быть изменены всеми другими объектами 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
0 голосов
/ 11 марта 2010

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

...