2012-03-26 61 views
0

我只是想知道是否有一个简单的方法来调用同一个对象内的另一个函数的变量?如何从同一对象内的另一个函数调用变量?

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()); 

在这个例子中,我想抓住从schadenfreude function和使用,促使号在我的办公室与irony function环路var number。谢谢您的帮助。

+0

使该schadenfreude函数返回数字值。 – slash197 2012-03-26 15:28:08

回答

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()); 

或者,你可以有“幸灾乐祸”的值分配给对象上的“数字”属性,让你参考this.number在“讽刺”功能。无论哪种情况,正如我在代码注释中指出的那样,您的for循环具有return语句的事实意味着如果用户给出任何非负数,“反讽”函数将始终返回零,否则返回undefined

+0

谢谢。这就是我需要知道的。我知道var对于函数来说是局部的,但我不确定这些规则是否因为它们全部位于对象之内而发生了变化。我想var必须在对象级别内定义,以供对象内的所有函数使用。感谢您的帮助。 – 2012-03-26 15:29:30

+0

当Stack Overflow允许我在7分钟内时,我也计划。 – 2012-03-26 15:32:49

+0

@jAndy感谢您的编辑! – Pointy 2012-03-26 15:37:29

0

听起来好像你想从同一个对象上定义的另一个成员获取局部变量。这不是直接可能的。局部变量的作用域被定义为定义函数/成员,并且没有办法直接访问它们。该函数必须以某种方式明确地将它们返回给调用者,以便它们被访问

相关问题