什麼我真的很爲創建對象的方法/屬性是類似下面的代碼:的Javascript:通過遍歷數組
var painter = {}; // An object to hold methods
var colors = ['blue', 'red', 'green', 'yellow']; // The names of methods to be defined
colors.forEach(function(color) {
painter.defineMethod(color, function(){ console.log(color); });
});
painter.blue() // writes blue
painter.red() // writes red
etc.
的painter.defineMethod()是關鍵。
我必須定義幾個(向上40)方法的對象,他們都基本上是相同的,與真正意義調用另一個方法微小但可預見的變化。例如:
painter.blue = function(tool) {
painter.draw('blue', tool); // Would paint blue with a brush or pencil or whatever.
}
是這樣的可能,或者我堅持明確定義所有這些屬性?這種方式或其他方式對性能有什麼好處?
什麼會在具有可變的變量或神奇的方法是在Javascript中證明很難(甚至不可能)語言很容易。雖然我承認JavaScript不是我的特長。
謝謝!
哇!謝謝。這不僅解決了我的問題,而且解決了一些問題。你知道,我從來沒有喜歡過Javascript(我喜歡像真正類的python這樣的更多結構化語言),但是我學得越多,我越認識到我自己的無知,我不喜歡:) – Apollo 2014-11-05 17:49:10
@Apollo:是的,發生了這樣的事情許多。現在我發現,當我用一種不太靈活的語言(Java說)工作時,我真的錯過了* JavaScript的靈活性。 :-)(順便說一下,如果你想要的東西就像JS中的類一樣,下面是我使用的幫助器:http://code.google.com/p/lineagejs/。它仍然是原型繼承[這很棒],但是帶有一些課堂的特徵。) – 2014-11-05 18:06:07