gpt4 book ai didi

javascript - 函数中的对象不起作用

转载 作者:行者123 更新时间:2023-12-01 02:23:26 25 4
gpt4 key购买 nike

基本上我想练习使用函数和对象来实现通过给出我的名字和圆的半径来输出一堆数据的目标。

但是,我不确定是否需要注意变量区域设置,或者是因为我使用了错误的方法来调用该函数......它只是不起作用。

有人会慷慨地帮助我吗?非常感谢!

<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 函数为例:您声明一个变量 radiusradius 现在只能在该函数“上下文”中访问。在这种情况下,函数的上下文存在于从左大括号到右大括号的函数之间。在下一个函数中,您尝试将 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com