【发布时间】:2015-05-11 12:57:55
【问题描述】:
代码是:
var x = 32;
var y = 44;
var radius = 5;
var centerX = 0;
var centerY = 0;
var width = 600;
var height = 400;
function setup(width, height) {
centerX = width/2;
centerY = height/2;
}
function computeDistance(x1, y1, x2, y2) {
var dx = x1 - x2;
var dy = y1 - y2;
var d2 = (dx * dx) + (dy * dy);
var d = Math.sqrt(d2);
return d;
}
function circleArea(r) {
var area = Math.PI * r * r;
return area;
}
setup(width, height);
var area = circleArea(radius);
var distance = computeDistance(x, y, centerX, centerY);
alert("Area: " + area);
alert("Distance: " + distance);
另外,哪些局部变量会影响全局变量?
我的回答
参数:宽度、高度、半径、x、y、centerX、centerY、“面积:”+面积、“距离:”+距离、d2。
参数:宽度、高度、x1、y1、x2、y2、r
局部变量:dx, dy, d2, d, area*
全局变量:x、y、半径、centerX、centerY、宽度、高度、面积、距离
*area 阴影全局变量区域。
但是书上的答案:d2 没有作为论据给出,可能是忘记了还是什么的……我想知道我的答案是否正确。
【问题讨论】:
-
好吧,我想说
var d2 = (dx * dx) + (dy * dy);d2被声明为变量,而var d = Math.sqrt(d2);行中它作为参数传递。 -
看看这本书在网络上的某个地方是否有勘误表。否则你的答案是对的。除了局部变量“area”不会影响全局变量“area”。在函数 circleArea() 内部,它有自己的范围,但该范围在该函数之外不可用。如果您使用 window.area,全局变量“area”仍然可以在函数内部访问 - 只是一个想法。
-
谢谢安迪,你认为我的回答是正确的吗?
-
Harish 谢谢朋友,但是这本书也表明局部变量区域会影响全局变量区域,所以你 100% 确定吗???
标签: javascript parameters arguments global-variables local-variables