有没有像c中的符号这样的东西,我可以在javascript中使用它来调用参数?
可能重复: 我拼命寻找解决办法。我有一个javascript项目要完成,唯一阻碍我的就是这个小东西。我只需要c中的and和ampersand之类的东西放在函数参数旁边,这样它就可以通过引用传递,并且它会在函数之外发生变化 现在我知道还有其他方法。但对我来说,这是唯一能帮助我的事情。 这是一个创建二进制搜索树的程序,我最初是用C++编写的,但是我需要把它转换成JavaScript,因为我将展示在代码执行时树是如何生成的。这是我的项目。所以要创建二进制结构,只有像符号这样的东西对我有帮助有没有像c中的符号这样的东西,我可以在javascript中使用它来调用参数?,javascript,Javascript,可能重复: 我拼命寻找解决办法。我有一个javascript项目要完成,唯一阻碍我的就是这个小东西。我只需要c中的and和ampersand之类的东西放在函数参数旁边,这样它就可以通过引用传递,并且它会在函数之外发生变化 现在我知道还有其他方法。但对我来说,这是唯一能帮助我的事情。 这是一个创建二进制搜索树的程序,我最初是用C++编写的,但是我需要把它转换成JavaScript,因为我将展示在代码执行时树是如何生成的。这是我的项目。所以要创建二进制结构,只有像符号这样的东西对我有帮助 func
function nod()
{
var info;
var left;
var right;
}
var rad;
rad = new nod();
rad = null;
function create(rad,x) // create(nod *&rad, int x) in c++
{
if(rad==null)
{
rad = new nod();
rad.info = x ;
rad.left = rad.right = null;
}
else
{
if(x < rad.info)
{
create(rad.left,x);
}
else
{
create(rad.right,x);
}
}
}
function read(rad) // read(nod *&rad) in c++
{
var input = [
0,
10,
2,
1,
8,
9,
4,
5,
3,
6,
20,
11,
30,
21,
31,
22,
23,
];
var i;
for(i=1;i<=16;i++)
{
create(rad,input[i]);
}
}
read(rad);
在javascript中,对象是通过引用传递的。因此,请尝试将值作为对象传递。
提示:试着像这样传递它{value:your_value}未测试,但如果您不迫切需要递归,可以使用以下方法:
function create(rad, x) // create(nod *&rad, int x) in c++
{
var result = new nod();
result.info = x;
result.left = result.right = null;
while (true) {
if (x < rad.info) {
if (rad.left) {
rad = rad.left;
continue;
}
rad.left = result;
break;
} else
if (rad.right) {
rad = rad.right;
continue;
}
rad.right = result;
break;
}
}
}
你永远不会说你有什么问题可以解决。请更详细地描述一下你的问题。。我的问题是。。我需要这种递归结构,因为我需要能够从rad开始,得到所有节点,就像rad在开始时是10。。左弧度是1弧度左弧度右弧度是2弧度右弧度是20。。。我需要通过这种方式访问它。。这是我的项目必须做的。。。。我需要这样做,因为我正在制作一个网页,将有C++代码显示在左边和右边,我将有二元树生成的代码执行。通过点击一个按钮,它将执行一行代码。。。我需要它与c代码几乎相同,这样就有了最少的问题DOWN vote,字符串和其他基本类型不会通过引用传递。正如你所说的,物体是好的,谢谢,补充道。我认为它们是通过引用传递的,看看这个,JavaScript中没有任何东西是通过引用传递的。阅读重复问题的公认答案。此处的混淆源于这样一个事实,即传递的是引用,但如果在函数中重新分配变量而不是修改其内容,则引用不再存在。所以,一个引用被传递了,但可以说它没有被返回。只要不重新分配作为参数传递的变量,它的行为将与引用传递模型中的预期一样。