2013-07-20 38 views
3

有沒有什麼辦法可以使用傳遞的參數來調用javascript中的函數。如何使用參數值來調用函數?

如:

var Animal = (function(){ 
    function Animal(type){ 
     this.type(); eg this.snake(); if the parameter type is "snake" 
    } 
    return Animal; 
})(); 

var animal = new Animal("snake"); 

謝謝!

+5

'this [type]()'? –

回答

2

Javascript對象屬性像associative arrays所以this.a == this['a']

var Animal = (function(){ 
     function Animal(type){ 
      this[type](); //eg this.snake(); if the parameter type is "snake" 
     } 
     return Animal; 
    })(); 
+0

它們不像數組一樣行事。 – Starx

+0

@Starx是正確的,函數不是數組,它們是對象!對象**有** *點符號*和*括號符號*。 –

+0

我說他們的行爲像聯合數組,明顯的對象不是數組,就像 – Sarath

1

可以參考它像一個陣列。在你的情況下,將this[type]

function Animal(type){ 
    this[type](); 
} 

此外,如果你不知道的對象,如果變量是全球性的,那麼你可以在同一個環境中使用window等。例如

var apple = 'tasty'; 
var fruit = 'apple'; 
console.log(window[fruit]); // Will give `tasty` as output 
相關問題