- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
基本上我想练习使用函数和对象来实现通过给出我的名字和圆的半径来输出一堆数据的目标。
但是,我不确定是否需要注意变量区域设置,或者是因为我使用了错误的方法来调用该函数......它只是不起作用。
有人会慷慨地帮助我吗?非常感谢!
<html>
<head>
<title>Here is Wei Wu's first in-class assignment~</title>
</head>
<body>
<script type="text/javascript">
function getName(){
var name_answer = prompt("Please enter your first and last name: ");
return name_answer;
}
function getRadius(){
var radius = Number(prompt("Please enter the radius you want: "));
return radius;
}
function getCircumference() {
var circumference_answer = 2*3.1415*radius;
return circumference_answer;
}
function getAreaOfTheCircle() {
areaOfTheCircle_answer = 3.1415*Math.pow(radius,2);
return areaOfTheCircle_answer;
}
function getVolumeOfTheSphere() {
volumeOfTheSphere_answer = (4/3)*3.1415*Math.pow(radius,3);
return volumeOfTheSphere_answer;
}
function Radius(){
this.nameOfTheUser = name_answer;
this.radiusOfTheUser = radius;
this.circumference = circumference_answer;
this.areaOfTheCircle = areaOfTheCircle_answer;
this.volumeOfTheSphere = volumeOfTheSphere_answer;
}
getName();
getRadius();
getCircumference();
getAreaOfTheCircle();
getVolumeOfTheSphere();
Radius();
document.write(Radius());
document.write(Radius.nameOfTheUser/*['radiu']*/);
document.write(Radius.radiusOfTheUser);
document.write(Radius.circumference);
document.write(Radius.areaOfTheCircle);
document.write(Radius.volumeOfTheSphere);
</script>
</body>
</html>
最佳答案
您似乎遇到了上下文问题。以您的 getName
函数为例:您声明一个变量 radius
。 radius
现在只能在该函数“上下文”中访问。在这种情况下,函数的上下文存在于从左大括号到右大括号的函数之间。在下一个函数中,您尝试将 radius
传递给 Math.pow
。这是您收到错误的地方,因为在此上下文中不存在 radius
。以下是修复此类错误的两种方法:
function square (a) {
return Math.pow(a, 2) // 'a' exists in this context because
} // it was passed as a parameter above
// Call it like this:
var b = square(2) //=> 4
为了使radius
对所有范围都可见,请在最高的范围中声明它:
var radius = 0
var name = ''
var area = 0
// Then declare your functions
function getName () {
// Notice that we can set name here, because it was declared in a higher scope
name = prompt('Please enter your first and last name: ')
}
getName()
console.log(name) // again, name is accessible here
我在这里阅读以了解有关 JavaScript 范围界定的更多信息:https://www.w3schools.com/js/js_scope.asp
关于javascript - 函数中的对象不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49021640/
今天有小伙伴给我留言问到,try{...}catch(){...}是什么意思?它用来干什么? 简单的说 他们是用来捕获异常的 下面我们通过一个例子来详细讲解下
我正在努力提高网站的可访问性,但我不知道如何在页脚中标记社交媒体链接列表。这些链接指向我在 facecook、twitter 等上的帐户。我不想用 role="navigation" 标记这些链接,因
说现在是 6 点,我有一个 Timer 并在 10 点安排了一个 TimerTask。之后,System DateTime 被其他服务(例如 ntp)调整为 9 点钟。我仍然希望我的 TimerTas
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我就废话不多说了,大家还是直接看代码吧~ ? 1
Maven系列1 1.什么是Maven? Maven是一个项目管理工具,它包含了一个对象模型。一组标准集合,一个依赖管理系统。和用来运行定义在生命周期阶段中插件目标和逻辑。 核心功能 Mav
我是一名优秀的程序员,十分优秀!