2012-03-26 67 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

聽起來好像你想從同一個對象上定義的另一個成員獲取局部變量。這不是直接可能的。局部變量的作用域被定義爲定義函數/成員,並且沒有辦法直接訪問它們。該函數必須以某種方式明確地將它們返回給調用者,以便它們被訪問

相關問題