作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
很抱歉新手的问题,但是:
我最近才发现“=”运算符不只是处理对象/等等。值(value),也是引用。这很酷,但我认为这对变量来说是不一样的,它不会在存储整数或 float 的变量之间创建引用。后来我觉得我是对的,但这就是我怀疑的原因:
我有一个函数,它输入四个值 (fx,fy,sx,sy),定义两个点,它会返回这两个点的线段与第一个点 (fx) 的射线之间的 Angular ,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/
我是一名优秀的程序员,十分优秀!