Отличается ли Кайл Симпсон "Шаблон OLOO (объекты, связывающиеся с другими объектами)" от шаблона проектирования "Прототип"? Кроме того, чтобы придумать что-то, что конкретно указывает на "связывание" (поведение прототипов) и разъяснение того, что здесь не происходит "копирование" (поведение классов), что именно представляет его паттерн?
Вот пример паттерна Кайла из его книги "Вы не знаете, JS: это и прототипы объектов":
var Foo = {
init: function(who) {
this.me = who;
},
identify: function() {
return "I am " + this.me;
}
};
var Bar = Object.create(Foo);
Bar.speak = function() {
alert("Hello, " + this.identify() + ".");
};
var b1 = Object.create(Bar);
b1.init("b1");
var b2 = Object.create(Bar);
b2.init("b2");
b1.speak(); // alerts: "Hello, I am b1."
b2.speak(); // alerts: "Hello, I am b2."