Вы видите из ответов, что уже имеете, что существует больше чем один путь.
#1
var o = new Object();
o.method = function(){}
#2
var o = new Object();
o.prototype.method = function(){}
#3
function myObject() {
this.method = function(){}
}
var o = new myObject();
#4
function myObject() {}
myObject.prototype.method = function(){}
var o = new myObject();
#5
var o = {
method: function(){}
}
#3 и № 4 используют функцию конструктора. это означает, что можно использовать их для создания многих объектов того же 'класса' (классы действительно не существуют в JavaScript)
, #4 отличается от № 3, потому что все объекты, созданные с № 4, совместно используют идентичный метод 'метода', потому что это - свойство их прототипа. Это сохраняет память (но только очень крошечная сумма) и если Вы измените метод прототипа, то все объекты № 4 будут сразу обновлены - даже если они уже инстанцировали.
#1, № 2 и № 5 все в значительной степени эквивалентны. Это вызвано тем, что, вероятно, только когда-либо будет один из них за один раз, таким образом, то, что № 2 добавили метод к прототипу, не будет действительно иметь значения. (не принимающий во внимание клонирующийся)
существует еще больше способов добавить методы к объектам с помощью фабрик с закрытием или добавляя 'статические' свойства/методы к функциям или частным вложенным функциям... :)
Не совсем для веб-служб, но вместе с Apache распространяется очень простой инструмент командной строки для тестирования производительности HTTP, он называется ApacheBench и находится в каталоге bin как ab.exe
Существует также http://www.soapui.org/ , который использовался нашим отделом контроля качества.