今天发现个问题,javascript传参,和java不同,请高手提醒. function test(){ var params = ""; getParams(params); alert(params); }function getParams(params){ params += "ssss";}提示的为 ""; 并不是"ssss", javascript 到底是怎么处理参数的. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 function test(){ var params = ""; getParams(params); alert(params); }这个方法并没有返回值.function getParams(params){ params += "ssss";}应该改成function test(){ var params = ""; params = getParams(params); alert(params); }这个方法并没有返回值.function getParams(params){ return params += "ssss";} 一句话点破, 嘿嘿. 为什么javascript 和java 在参数处理上不同呢? public class StringTest { /** * @param args */ public void change(String test) { test+="sss"; } public void change(StringBuffer test) { test.append("sss"); } public static void main(String[] args) { // TODO Auto-generated method stub String a="test"; StringBuffer b=new StringBuffer("test"); StringTest s=new StringTest(); s.change(a); s.change(b); System.out.println("a\t"+a);//test System.out.println("b\t"+b);//testsss }}怎么和java不一样啊 String的值是不可变的 变了其实是指向了另外一个地址 javascript 传参分两种,传值和传引用(可以理解为指针)你的param定义的时候,数据类型为string,所以实际传给getParams的是param存储的值所以function test(){ var params = new Object(); params.str = ""; getParams(params); alert(params.str); }function getParams(params){ params.str += "ssss";} 这两种都行window.onload=function test(){ var params = ""; params = getParams(params); alert(params); } return params += "ssss";function getParams(params){ }window.onload=function test(){ var params =getParams("abc") ; alert(params); }function getParams(params){ return params += "ssss";} 第二个的方法,return跳到外面去了。呵呵。这破鼠标不行。 function test(){ var params = ""; alert(getParams(params)); }function getParams(params){ return (params += "ssss");} js里面srting是基本的数据类型,你传递的是值,java里面String是一个对象,传递的是指针。 呃,按你这么说传值是和java一样的,不信你去试试。 javaScript 网页缩放,元素位置重置 js区分submit提交问题 javascript如何判断数组内元素是否重复? 求一个JAVASCRIPT代码,可以输入数据的SELECT JavaScript如何实现UrlEncode 哪位高人帮帮忙!! 请javascript高手们帮我写一段代码,要实现的功能见内: 请问怎么从javascript调用flash的actionscript? 我也是女生呀,怎么人气这么低呢??? 一道很难的前端开发面试题,请假高人解答(题目如下): jquery替换字符串 min-height 的不兼容
function test(){
var params = "";
getParams(params);
alert(params);
}
这个方法并没有返回值.
function getParams(params){
params += "ssss";
}
应该改成
function test(){
var params = "";
params = getParams(params);
alert(params);
}
这个方法并没有返回值.
function getParams(params){
return params += "ssss";
}
* @param args
*/
public void change(String test) {
test+="sss";
}
public void change(StringBuffer test) {
test.append("sss");
}
public static void main(String[] args) {
// TODO Auto-generated method stub
String a="test";
StringBuffer b=new StringBuffer("test");
StringTest s=new StringTest();
s.change(a);
s.change(b);
System.out.println("a\t"+a);//test
System.out.println("b\t"+b);//testsss
}}
怎么和java不一样啊 String的值是不可变的 变了其实是指向了另外一个地址
function test(){
var params = new Object();
params.str = "";
getParams(params);
alert(params.str);
}function getParams(params){
params.str += "ssss";
}
window.onload=function test(){
var params = "";
params = getParams(params);
alert(params);
}
return params += "ssss";function getParams(params){
}window.onload=function test(){
var params =getParams("abc") ;
alert(params);
}function getParams(params){
return params += "ssss";
}
var params = "";
alert(getParams(params));
}function getParams(params){
return (params += "ssss");
}