我只想知道是否有一种简单的方法可以从同一个Object中的另一个函数调用变量?
var comedy = {
schadenfreude: function() {
var number = prompt("Provide me a number.");
},
irony: function() {
this.schadenfreude();
for(i = 0; i < this.schadenfreude.number(); i++){
return i;
}
}
};
console.log(comedy.irony());
在此示例中,我希望从var number
中抓取schadenfreude function
并在{for循环中使用irony function
中的提示数字。谢谢你的帮助。
答案 0 :(得分:4)
“schadenfreude”函数中的“number”变量是该函数的本地变量。即使你能够达到它(你不能),它对你也没有好处。
你(可能)想要的是:
var comedy = {
number: 0,
schadenfreude: function() {
this.number = prompt("Provide me a number.");
},
irony: function() {
this.schadenfreude();
for(i = 0; i < this.number; i++){
alert(i);
};
}
};
console.log(comedy.irony());
或者,你可以让“schadenfreude”将值赋给对象的“number”属性,这样你就可以在“反讽”函数中引用this.number
。在任何一种情况下,正如我在代码中的注释中所指出的那样,你的for
循环具有return
语句的事实意味着如果用户给你任何非语句,那么“反讽”函数将始终返回零 - 否定号码,否则undefined
。
答案 1 :(得分:0)
听起来你想从同一个对象上定义的另一个成员中获取一个局部变量。这不是直接可能的。局部变量的范围限定为定义函数/成员,并且没有直接访问它们的方法。该函数必须以某种方式显式地将它们返回给调用者才能访问它们