如何在javascript中将字符串值作为引用传递并在那里进行更改
如何在javascript中通过引用传递字符串值 我想要这种功能如何在javascript中将字符串值作为引用传递并在那里进行更改,javascript,jquery,string,pass-by-reference,Javascript,Jquery,String,Pass By Reference,如何在javascript中通过引用传递字符串值 我想要这种功能 //Library.js function TryAppend(strMain,value) { strMain=strMain+value; return true; } //pager.aspx function validate() { str="Checking"; TryAppend(str,"TextBox"); ale
//Library.js
function TryAppend(strMain,value)
{
strMain=strMain+value;
return true;
}
//pager.aspx
function validate()
{
str="Checking";
TryAppend(str,"TextBox");
alert(str); //expected result "Checking" TextBox
//result being obtained "Checking"
}
怎么做 在JS中不能通过引用传递值。您可以创建一个具有函数的对象来执行此操作:
function TryAppend(originalValue) {
// Holds the value to return
this.Value = originalValue;
// The function joins the two strings
this.Append = function (append) {
this.Value+=append;
return true;
}
}
然后,您可以在以下任何方法中使用此选项:
function AnyProcedure() {
var str = "Checking";
var append = new TryAppend(str);
if (append.Append("TextBox")) {
alert(append.Value); // Will give "CheckingTextBox"
}
}
每次调用append时,都会将值字符串追加到。即
如果你当时这样做了:
append.Append(" Foo");
append.Value
将等于CheckingTextBox Foo。您需要返回字符串,而不是true
function TryAppend(strMain,value) {
strMain=strMain+value;
return strMain; //you need return the 'String Value' to use in it another method
}
//pager.aspx
function validate() {
str="Checking";
str = TryAppend(str,"TextBox");
alert(str); //expected result "Checking" TextBox
//result being obtained "Checking"
}
在函数TryAppend外部创建一个全局变量(比如gblstrMain),然后在函数内部将其值设置为strMain
var gblstrMain;
function TryAppend(strMain,value)
{
strMain=strMain+value;
gblstrMain = strMain;
return true;
}
//pager.aspx
function validate()
{
str="Checking";
TryAppend(str,"TextBox");
str = gblstrMain;
alert(str); //expected result "Checking" TextBox
//result being obtained "Checking"
}
由于您对TryAppend函数中的“return true”很挑剔,我们可以通过这种变通方法来实现。@haim evgi:我已经看到了这个问题。但这个问题让我很困惑。我没有得到ShowMe是什么,因为它似乎是一个全局变量。我不想使用全局变量。
strMain
是一个局部变量(在第一个函数的上下文中)。我刚刚陷入了一种情况,我需要像您一样操作(操作字符串,但返回布尔值)。我一直觉得JavaScript很可怜,但现在我可以正式宣称它比这糟糕得多。你是如何将strMain作为myObject.strMain放入myObject的。如果两个函数都在不同的js文件上,它会工作吗?是的。只要两个js文件都是页面上的引用,它们就可以看到对方。我还有一些其他用途,因此无法返回字符串