我可以通过javascript函数传递一个值吗?

时间:2010-03-07 17:51:17

标签: javascript

我可以将一个值从javascript函数传递回调用函数,例如

function updateURL(url, name, param) {
  url = url + "&" + name + "=" + param;
}

我想更新网址并返回新值。

这可能吗?

3 个答案:

答案 0 :(得分:5)

你所要求的是“pass-by-reference”。 Javascript对本机类型(int,string等)使用“pass-by-value”---其他类型是pass-by-reference。对于您的具体情况,我可以想出两种方法来获得您想要的东西。第一种是要求调用者传入一个包含单个元素的数组并修改该元素:

function updateURL(url, name, param) {
    url[0] = url[0] + "&" + name + "=" + param;
}
url = ['http://www.google.com/?'];
updateURL(url, 'foo', 'bar');
alert(url[0]);

第二种方法是在对象上使用属性:

function updateURL(url, name, param) {
    url.url = url.url + "&" + name + "=" + param;
}
url = new Object();
url.url = 'http://www.google.com/?';
updateURL(url, 'foo', 'bar');
alert(url.url);

答案 1 :(得分:1)

function parentFunction() {
    var url = 'http://www.example.com?qs=1';
    var name = 'foo';
    var param= 'bar';
    var newUrl = updateURL(url, name, param);
}

function updateURL(url, name, param) {
  url = url + "&" + name + "=" + param;
  return url;
}

答案 2 :(得分:0)

var myUrl = updateUrl('url', 'name', 'param');

function updateURL(url, name, param) {
  url = url + "&" + name + "=" + param;
  return url;
}