Моя команда и я используем Restlet экстенсивно, но не его функции JAX-RS. Я могу сказать Вам, что был очень впечатлен разработчиками Restlet и сообществом; они являются очень активными, занятыми, быстро реагирующими, и согласились на стабильную, эффективную, надежную, и эффективную платформу. Я сожалею, что не могу непосредственно обратиться к Вашему главному интересу, но я думал, что Вы могли бы найти мой опыт с Restlet ценным.
Есть разница, по крайней мере, если вы назначаете непримитивный объект для this.somevar
или prototype.somevar
.
Попробуйте запустить это:
function Agent(bIsSecret)
{
if(bIsSecret)
this.isSecret=true;
this.isActive = true;
this.isMale = false;
this.myArray = new Array(1,2,3);
}
function Agent2(bIsSecret)
{
if(bIsSecret)
this.isSecret = true;
}
Agent2.prototype.isActive = true;
Agent2.prototype.isMale = true;
Agent2.prototype.myArray = new Array(1,2,3);
var agent_a = new Agent();
var agent_b = new Agent();
var agent2_a = new Agent2();
var agent2_b = new Agent2();
if (agent_a.myArray == agent_b.myArray)
alert('agent_a.myArray == agent_b.myArray');
else
alert('agent_a.myArray != agent_b.myArray');
if (agent2_a.myArray == agent2_b.myArray)
alert('agent2_a.myArray == agent2_b.myArray');
else
alert('agent2_a.myArray != agent2_b.myArray');
Нет. «прототип», используемый для реализации наследования в Javascript. Например:
/** obsolete syntax **/
var Person = Class.create();
Person.prototype = {
initialize: function(name) {
this.name = name;
},
say: function(message) {
return this.name + ': ' + message;
}
};
var guy = new Person('Miro');
guy.say('hi');
// -> "Miro: hi"
var Pirate = Class.create();
// inherit from Person class:
Pirate.prototype = Object.extend(new Person(), {
// redefine the speak method
say: function(message) {
return this.name + ': ' + message + ', yarr!';
}
});
var john = new Pirate('Long John');
john.say('ahoy matey');
// -> "Long John: ahoy matey, yarr!"
исходный код и дополнительную информацию вы можете найти здесь: http://www.prototypejs.org/learn/class-inheritance
Функционально это то же самое. Последний, однако, подчеркивает сходство между объектами Agent
. Вы можете мельком увидеть, что эти члены имеют это значение, тогда как в более сложной функции-конструкторе с большим количеством условных выражений это сложнее.
Это также позволяет среде выполнения javascript выбирать, как она обрабатывает Агент
инициализации членов. (сделайте предварительную компиляцию, ...)
Предполагается, что эта функция будет использоваться в качестве конструктора, первая с заданными свойствами в новом экземпляре, а вторая - в прототипе. Если они не зависят от экземпляра, два фрагмента эквивалентны, но если нет (как следует из их названия), то это не так.