gpt4 book ai didi

javascript - 这是范围问题还是函数创建方式问题?

转载 作者:行者123 更新时间:2023-11-28 15:28:57 24 4
gpt4 key购买 nike

我已经很多年没有使用 Javascript 了,我正在尝试重新开始。我只是想创建几个随机数并将它们加在一起。我还想练习使用“getVariable()”来保护对原始变量的操作,同时使整个脚本可以访问它们。我一定是记错了,或者我正在做一些非常愚蠢的事情。我不断收到一条消息,指出 getScore1 未定义。我尝试将其编写为 function getScore1() 和 this.getScore1 = function(){}。有人可以指出我正确的方向吗?

function twoRandomScores(){
var score1 = Math.random(1, 10);
var score2 = Math.random(1, 10);
return score1 + score2;
this.getScore1 = function(){
return this.score1;
}
function getScore2(){
return this.score2;
}
}

document.write(getScore1() + '+' + getScore2() + '=' + twoRandomScores());

最佳答案

getScore 函数在 twoRandomScores() 函数内部定义,因此不能简单地从外部访问它们。您现在编写的代码也没有任何意义,因为 getScore() 函数仅在 after twoRandomScores() 之后才有意义。 code> 被调用(并且针对它的一个特定调用)。这是解决此问题的一种方法:

function twoRandomScores(){
var score1 = Math.random(1, 10);
var score2 = Math.random(1, 10);
return {
score: score1 + score2,
getScore1: function(){
return score1;
},
getScore2: function(){
return score2;
}
};
}

var scores = twoRandomScores();
console.log(scores.getScore1() + '+' +
scores.getScore2() + '=' +
scores.score);

话又说回来,有两个函数 getScore1getScore2 并不能真正完成任何事情,所以你可以这样做:

function twoRandomScores(){
var score1 = Math.random(1, 10);
var score2 = Math.random(1, 10);
return {
score: score1 + score2,
score1: score1,
score2: score2
};
}

var scores = twoRandomScores();
console.log(scores.score1 + '+' + scores.score2 + '=' + scores.score);

关于javascript - 这是范围问题还是函数创建方式问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28130058/

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