2014-09-27 137 views
0

我有一個定義函數的Typescript對象。該對象本身定義了一些對象的數組。所以我試圖添加一個函數來更像索引器。該函數總是返回它定義的父對象,而不是特定的字符串值。Typescript函數總是返回父對象並且不返回值

這是代碼。變量被定義爲具有名稱和值作爲屬性的對象數組。

valueOf(key: string): string { 
     var result = ''; 

     if (key === null || key === undefined || key.length === 0) { 
      return result; 
     } 

     for (var i = 0; i < this.variables.length; i++) { 
      if (this.variables[i].name === key) { 
       result = this.variables[i].value; 
       break; 
      } 
     } 

     return result; 
    } 

UPDATE

上述功能是打字稿對象上定義。該對象包含一個Array類型的屬性。我想根據字符串鍵而不是數字鍵來查詢該數組。這就是爲什麼我寫了上面的函數來循環屬性「變量」的元素,即數組,當「name」===「鍵傳入」匹配時,返回與該對象關聯的「值」 「變量屬性」。

+0

我不確定我明白這段代碼應該做什麼。你能否提供一些更多的背景知識或一些示例用法以使其更加清晰? – 2014-09-27 06:10:47

+0

['Object#valueOf' already exists](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/valueOf),您應該重新考慮您的函數名稱。 – DCoder 2014-09-27 06:17:40

+0

該功能看起來很好。你可以把你的代碼放在「變量」變量和構造函數中嗎? – 2014-09-27 06:46:19

回答

0

我的東西像「valueFor」更名:

例如,我可以在上面使用。然而同樣的問題。

我在客戶端填充對象的方式是通過從服務器接收對象作爲JSON,我解析JSON並將結果設置在客戶端上的對象上。看起來,函數'valueFor'在從服務器綁定時被刪除,因爲這樣的函數在服務器對象上不存在。這是JavaScript的正常行爲是動態的嗎?

現在,我從服務器和填充客戶端對象的每個屬性,因此保留函數'valueFor'沒有任何問題。