Здравствуйте!
Почему в первом объекте оказывается сообщение? Должно же только во втором..
var Terminal = {
inbox: [],
sendMail: function (target, message) {
target.inbox.push({ terminal: this.name, message });
}
};
var t1 = Object.assign({}, Terminal, { name: 'Jack' });
var t2 = Object.assign({}, Terminal, { name: 'Alice' });
t1.sendMail(t2, 'Hello Alice');
console.log(t1);
// {
// inbox: [{ terminal: 'Jack', message: 'Hello Alice' }],
// sendMail: [Function: sendMail],
// name: 'Jack'
// }
Object.assign({}, Terminal, {});
Разве Terminal не должен оставаться нетронутым? Мы ведь из него копируем свойства в пустой объект.
UPD
Ничего не понимаю
console.log(t1.inbox === t2.inbox); // true