我试图了解功能范围与Gobal范围,以下示例:
<script>
// The following variables are defined in the global scope
var num1 = 2,
num2 = 3,
name = "Chamahk";
// This function is defined in the global scope
function multiply() {
return num1 * num2;
}
console.log(multiply()); // Returns 60
// A nested function example
function getScore () {
var num1 = 20,
num2 = 30;
function add() {
var num1 = 200,
num2 = 300;
return name + " scored " + (num1 * num2);
}
return add();
}
console.log(getScore()); // Returns "Chamahk scored 60000"
</script>
我用Google搜索并发现可以使用此访问Global Scoped变量。将返回代码更改为
return name + " scored " + (this.num1 * this.num2);
输出为“Chamahk得分为6”,表示这是访问全局var num1和num2。
这很清楚,但我想知道的是,如何访问getScore()函数中声明的num1和num2 .i.e。将输出设为600。
答案 0 :(得分:0)
我不得不说你的问题有点令人困惑。
通常,您可能希望使用函数的参数来传递值。
你获得60000的原因是因为在你的添加功能中你设置了num1,而num2设置为200和300。
如果您更改了add函数以将num1和num2作为参数,而不是重新声明它们,则可以在getScore()中传入值;
例如return add(num1,num2);
var player = new System.Media.SoundPlayer("c:\\tes.wav");
player.Play();