所以,我想要的是将函数返回值保存在一个变量上供以后使用,例如,只是为了保存它,但是在点击之后,就像在一个按钮上说的那样。例如,我们有:
let x = 3;
function foo(){
let z = 5;
z = x + 3;
return z;
}
现在,如果我写:
let hold = foo();
它将保留返回值,但我希望将其保存在" hold"点击后,使用以下内容:
document.getElementById("empty_field").onclick = function() {foo()};
此处,单击调用该函数,但它不会将返回值保存在任何位置。如何将其保存在变量上?
答案 0 :(得分:0)
简短回答:你不能
详尽答案:您可以在设置hold
值之前简单地声明let x = 3;
let hold; //variable is declared here so the click function has access to it.
function foo(){
let z = 5;
z = x + 3;
return z;
}
document.getElementById("empty_field").onclick = function() {
hold = foo()
};
,从而利用范围概念。这就是它的样子。
hold
更长的答案:您可以在声明变量的范围内的任何位置访问或修改hold
。让我们添加另一个函数,我们再次修改let x = 3;
let hold; //variable is declared here so the click function has access to it.
function foo(){
let z = 5;
z = x + 3;
return z;
}
document.getElementById("empty_field").onclick = function() {
hold = foo()
};
document.getElementById("increment").onclick = function(){
hold++; //this the same as hold = hold + 1
}
。
hold
这也是有效的,因为这些单击函数是在定义function myConstructor(){
//initialize
this.hold = 0
this.foo = function(x){
let z = 5;
z = x + 3;
this.hold = z;
}
this.increment = function(){
this.hold++;
}
}
let x = 3;
let myObj = new myConstructor() //I know my naming sucks just bear with me lol
document.getElementById("empty_field").onclick = function() {
myObj.foo(x) //x is still available since it was declared globally
console.log(myObj.hold);
};
document.getElementById("increment").onclick = function(){
myObj.increment();
console.log(myObj.hold);
}
的同一范围内定义的。避免使用全局范围的变量是很好的。因此,您可以考虑使用构造函数,只是将函数之间的对象作为参数传递,如此...
string id = {id};
State state = State.observed;
HttpWebResponse response = proxyClient.ChangeState(id, state);
if (response.StatusCode != HttpStatusCode.OK)
{
// handling error
}
无论如何,这是它的长短。与往常一样,有很多种做事方式,并不是绝对正确的方法。我只是认为了解一些选项可能会有所帮助。有关构造函数的更多内容可以在这里完成:https://www.w3schools.com/js/js_object_constructors.asp