简体   繁体   English

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

[英]Can I pass a value out of a javascript function?

Can I pass a value out of a javascript function and back to the calling function, eg 我可以将值从javascript函数传递出去并返回给调用函数,例如

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

I want to update url and return the new value. 我想更新网址并返回新值。

Is this possible? 这可能吗?

What you're asking for is called " pass-by-reference ". 您要的是所谓的“ 传递参考 ”。 Javascript uses " pass-by-value " for the native types (int, string, etc)---other types are pass-by-reference. Javascript对本机类型(int,字符串等)使用“ 传递值 ” ---其他类型是按引用传递。 For your specific case, I can think of two ways to get what you want. 对于您的特定情况,我可以想到两种获取所需内容的方法。 The first is to require callers to pass in an array with a single element and modify that element: 第一种是要求调用者传递带有单个元素的数组并修改该元素:

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

The second method would be to use an attribute on an object: 第二种方法是在对象上使用属性:

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);
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;
}
var myUrl = updateUrl('url', 'name', 'param');

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM