我遇到功能参数问题

时间:2017-09-04 20:18:18

标签: javascript function parameters

我正在为Udemy做一个通过制作乒乓球来学习JavaScript的课程但是当我遇到这个部分时我真的很困惑。参数是做什么的?他们是变数吗?如果它们是变量,它们是否可以从函数中访问?我只是不明白!请解释给我! :(

我甚至不明白他在做什么!

我认为他试图绘制或填充它或其他东西。

这是代码:

function colorCircle(centerX, centerY, radius, drawColor) {
    canvasContext.fillStyle = drawColor;
    canvasContext.beginPath();
    canvasContext.arc(centerX, centerY, radius, 0,Math.PI*2, true);
}

2 个答案:

答案 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, cdelete 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;

功能参数为我们带来了一些额外的好处:

首先,我们的函数以外的代码无法访问参数abc

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

奖励的好处是我们的来电者不必担心我们内部称之为输入的内容 - 如果我们更改ab的名称, cxyz我们的主叫代码保持不变:

function doWork(x, y, z) {}
doWork(1, 2, 3)  // STILL WORKS :-)