我正在为Udemy做一个通过制作乒乓球来学习JavaScript的课程但是当我遇到这个部分时我真的很困惑。参数是做什么的?他们是变数吗?如果它们是变量,它们是否可以从函数中访问?我只是不明白!请解释给我! :(
我甚至不明白他在做什么!
我认为他试图绘制或填充它或其他东西。
这是代码:
function colorCircle(centerX, centerY, radius, drawColor) {
canvasContext.fillStyle = drawColor;
canvasContext.beginPath();
canvasContext.arc(centerX, centerY, radius, 0,Math.PI*2, true);
}
答案 0 :(得分:0)
那些参数不能在函数外部访问。看看这个: https://www.w3schools.com/js/js_function_parameters.asp
另外,请查看此链接以了解变量是什么:https://www.w3schools.com/js/js_function_parameters.asp。
他要做的是画一个圆圈,给它一个颜色,位置和半径。
在udemy中搜索此课程:https://www.udemy.com/the-complete-javascript-course/
答案 1 :(得分:0)
变量只是一个命名值。而不是在任何地方硬编码值:
100 /* speed of my canary */ + 10 /* current speed bonus */
我们可以“命名”我们的值并传递它们(甚至可以根据需要更改它们而无需重新编写我们程序的其余部分):
var speedOfMyCanary = 100;
var speedBonus = 10;
speedOfMyCanary + speedBonus // still 110;
函数参数只是一个作用于函数的变量:
function doWork(a, b, c) {
// Do work here later with a, b, and c.
}
与(概念上)相同:
var a, b, c;
function doWork() {
// Do work here later with a and b and c
}
// Call do work now
doWork();
delete a;
delete b;
delete c;
如果我们可以随身携带var a, b, c
和delete a, b, c
doWork
而无需复制粘贴。
也就是说,当我们打电话时:
doWork(1, 2, 3);
(同样,概念)与:
相同var a = 1, b = 2, c = 3;
function doWork() {
// Do work here later with a and b and c
}
doWork();
delete a;
delete b;
delete c;
功能参数为我们带来了一些额外的好处:
首先,我们的函数以外的代码无法访问参数a
,b
和c
:
function doWork(a, b, c) {
// a, b, and c are all accessible here
return a + b + c;
}
// But we can't access those values out here
// if we try we'll get:
a // ReferenceError - `a` is not defined
奖励的好处是我们的来电者不必担心我们内部称之为输入的内容 - 如果我们更改a
,b
的名称, c
到x
,y
和z
我们的主叫代码保持不变:
function doWork(x, y, z) {}
doWork(1, 2, 3) // STILL WORKS :-)