很抱歉出现noobie问题,但:
我最近才发现'='运算符是如何不仅仅是处理对象/等的。值,也可以参考。一切都很酷,但是我认为变量并不相同,并且它不会在存储整数或浮点数的变量之间创建引用。后来我认为我是正确的,但这就是为什么我对此表示怀疑的原因:
我有一个用于输入四个值(fx,fy,sx,sy)的函数,它们定义了两个点,它将返回这两个点的线段与第一个点的光线(fx,fy)之间的角度到(+ Infinity,fy)。
比起我有一个用于鼠标移动的事件监听器,还有两个值fa和sa。我的代码是:
/*mx and my are the points of the mouse, px and py are x and y of some point*/
sa=fa;
fa=angle(px,py,mx,my);
/*here on I use those values sa and fa for something*/
但是问题是,fa和sa始终具有相同的值(从逻辑上来说,这使我感到困惑)。我有点猜测该函数可能返回一个对象而不是变量,但是我不确定。因此,我认为我应该在此处包括该功能:
function angle(fx,fy,sx,sy){
this.arsn=0.00000000000001;
this.ba;this.ba1;this.ba2;
this.d=((fx-sx)**2+(fy-sy)**2)**(1/2);
this.a = sx-fx;
this.b = sy-fy;
this.ba1=Math.asin(b/d);
this.ba2=Math.acos(a/d);
if(Math.abs(this.ba1-this.ba2)<this.arsn)
this.ba=this.ba1;
else if(Math.abs(this.ba1+this.ba2-Math.PI)<this.arsn){
this.ba=this.ba2;
}else if(Math.abs(this.ba1+this.ba2)<this.arsn){
this.ba=2*Math.PI-ba2;
}else if(Math.abs(-this.ba1+this.ba2-Math.PI)<this.arsn){
this.ba=Math.PI-this.ba1;
}
return this.ba;
}
有人可以告诉我如何不在fa和sa之间创建引用,但仍将值从fa传递给sa吗?我做了一些研究,导致我here,但是这些答案似乎太复杂了,大多是面向对象的或使用json。我所知道的只是javascript(我不会说我太擅长了)。
最佳答案
使用函数返回值时,请使用var
代替this.
。
关于javascript - 令a和b为变量。如何将a的值设置为b之一,但不创建a和b之间的引用?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45843368/