如何从同一对象中的另一个函数调用变量?

时间:2012-03-26 15:25:03

标签: javascript

我只想知道是否有一种简单的方法可以从同一个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中的提示数字。谢谢你的帮助。

2 个答案:

答案 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)

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