我可以将一个值从javascript函数传递回调用函数,例如
function updateURL(url, name, param) {
url = url + "&" + name + "=" + param;
}
我想更新网址并返回新值。
这可能吗?
答案 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;
}