ты прототипу присвоил options. в функции конструкторе this.options.name = name - невалидное выражение, так как this.options - нет, ты пишешь undefined.name = name
this.options.name = name мутирует объект найденный в прототипе, потому что своего свойства options у экземпляра нет.
Спасибо большое! Разобрался
Ещё что то такое спросят обязательно. function Person () {} Person.prototype = { name: 'foo' } var foo = new Person() Person.prototype = { name: 'bar' } console.log(foo.name)
Не поменяется, прототип один раз присваивается, если не ошибаюсь
Что значит один раз?
Присвоение второй раз name прототипу Person создаст новый объект. А в foo ссылка на старый, как я понимаю.
Можно ли сменить прототип у объекта foo?
Можно конечно.
Обсуждают сегодня