2011-11-27 77 views
3

我有一個模型,並希望爲其上的所有屬性聲明函數。在Javascript中動態聲明方法

比方說,這些都是屬性:名字,姓氏]

我希望能夠用這些來

person.firstName() 
person.lastName() 

如何編程定義從一個字符串數組的方法呢?

+0

「人」是單身還是你有多個這樣的對象? –

+0

我有多個人。 – ajsie

回答

3
['firstName', 'lastName'].forEach(function(funcName) { 
    var prop = person[funcName];  
    person[funcName] = function() { 
     return prop; 
    } 
}); 

CodePad

如果您事先不知道屬性,則可以在環境支持的情況下使用Object.keys()或使用for (in)循環獲取密鑰。

CodePad

+0

我不知道屬性提前,所以你的第二個解決方案適合。非常好的答案,謝謝! – ajsie