我可以在 javascript 中使用 c 中的 & 符号来处理参数吗? [复制]
Posted
技术标签:
【中文标题】我可以在 javascript 中使用 c 中的 & 符号来处理参数吗? [复制]【英文标题】:Is there somthing like an ampersand in c that I can use in javascript to function parameters? [duplicate] 【发布时间】:2012-06-21 12:00:28 【问题描述】:可能重复:Pass Variables by Reference in javascript
我拼命寻找解决方案。我有一个 javascript 项目要完成,唯一阻碍我的是这个小东西。我只需要 c 中的和符号之类的东西放在函数参数旁边,这样它就可以通过引用传递,它会在函数之外发生变化。
现在我知道还有其他方法。但就我而言,这是唯一能帮助我的事情。 这是一个创建二叉搜索树的程序,我最初是用 c++ 制作的,但我需要将它转换为 javascript,因为我将展示代码执行时树是如何生成的。这是我的项目。所以要创建二进制结构,只有像&符号这样的东西会对我有所帮助。
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);
【问题讨论】:
你永远不会说通过地址传递会解决什么问题。请更详尽地描述您的问题 哦,对不起..我的问题是..我需要那个递归结构,因为我需要能够从 rad 开始并在开始时获得像 rad 这样的所有节点是 10.. rad.left是 1 rad.left.right 是 2 rad.right 是 20...我需要以这种方式访问它..它是我的项目必须的....我需要它是这样的,因为我正在制作将在左侧和右侧显示 c++ 代码的网页我将在代码执行时生成二叉树。通过单击按钮,它将执行一行代码……我需要它几乎与 c 代码相同,因此问题最少 【参考方案1】:在 javascript 中,对象是通过引用传递的。因此,请尝试将您的值作为对象传递。 提示:尝试像这样传递它 value:your_value
【讨论】:
否决票,字符串和其他原始类型不通过引用传递。正如你所说,对象是 好的,谢谢,补充。我以为他们是通过参考通过***.com/questions/1308624/… Nothing 在 JavaScript 中通过引用传递。阅读已接受的重复问题的答案。 这里的混淆源于传递的是引用的事实,但是如果您在函数内部重新分配变量(而不是修改其内容),则引用不再存在。所以,一个引用被传递了,但它没有被返回,可以这么说。只要您不重新分配作为参数传递的变量,它就会在“按引用传递”模型中按预期运行。【参考方案2】:没有经过测试,但如果你不急需递归,你可以使用这个:
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;
【讨论】:
以上是关于我可以在 javascript 中使用 c 中的 & 符号来处理参数吗? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
为啥C没有像javascript中的setTimeout这样的非阻塞睡眠功能
Javascript、Razor/MVC3 中的 C# if 语句