对于noobie问题感到抱歉,但是:
我最近才知道' ='运营商并不只是处理对象/等。值,但也参考。这很酷,但我认为变量并不相同,并且它不会在存储整数或浮点数的变量之间创建引用。我后来认为我是对的,但这就是我怀疑的原因:
我有一个输入四个值(fx,fy,sx,sy)的函数,定义了两个点,它会返回这两个点的线段和第一个点的光线之间的角度(fx ,fy)to(+ 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(而且我不会说我太擅长了)。
答案 0 :(得分:1)
在使用函数返回值时,使用var
代替this.
。