Этот "this" меня убивает. Помогите
я застрял в решении задачи. Уже весь свой маленький мозг выскреб.
вот что мы имеем в начале. function NamedOne(first, last) { this.firstName = first; this.lastName = last; this.fullName = this.firstName + ' ' + this.lastName; } var namedOne = new NamedOne("Ваня","Иванов") что мы получаем namedOne.firstName // -> "Ваня" namedOne.lastName // -> "Иванов" namedOne.fullName // -> "Ваня Иванов" теперь же я изменяю свойства имени и фамилии namedOne.firstName = "Петя" namedOne.firstName // -> "Петя" //вывело! namedOne.lastName = "Петров" namedOne.lastName // -> "Петров" //вывело! а вот и проблема, полное имя не изменилось. namedOne.fullName // -> "Ваня Иванов" // вывело старое значение надо сделать так что бы оно выводило измененные значения именно namedOne.fullName // -> "Петя Петров" this.fullName = function() { return this.firstName + ' ' + this.lastName; }; через функцию не получается потому, что вызов namedOne.fullName |
emptinessandform,
function NamedOne(first, last) { this.firstName = first; this.lastName = last; this.fullName = this.firstName + ' ' + this.lastName; } var namedOne = new NamedOne("Ваня", "Иванов"); namedOne.firstName = "Петя"; namedOne.lastName = "Петров"; namedOne.fullName = namedOne.firstName + ' ' + namedOne.lastName; alert(namedOne.fullName); |
Цитата:
Цитата:
|
Цитата:
var namedOne = new NamedOne("Ваня", "Иванов"); namedOne.setName("Петя","Петров"); alert(namedOne.fullName); function NamedOne(first, last) { this.setName=function (first, last){ this.firstName = first; this.lastName = last; this.fullName = this.firstName + ' ' + this.lastName; }; this.setName(first, last); }; |
function NamedOne(first, last) { this.firstName = first; this.lastName = last; Object.defineProperty(this, "fullName", { get: function () { return this.firstName + " " + this.lastName; } });; } var namedOne = new NamedOne("Ваня","Иванов"); namedOne.firstName = "Петя"; alert(namedOne.fullName); |
namedOne.firstName = 'Петя' namedOne.lastName = 'Петров' namedOne.fullName = 'Петя Петров' вот так без использования сеттеров должно быть. |
tsigel,
о спасибо. вот то что нужно. Теперь буду разбирать как вы это сделали! спасибо большое! |
Цитата:
Как вариант, так namedOne.firstName = 'Петя' namedOne.lastName = 'Петров' namedOne.fullName = namedOne.firstName+' '+namedOne.lastName |
А можно сделать какой то аналог get{} set{} как в С?
|
Sinhrofazathron,
ты про что? Приведи пример, не все же C знают. |
Часовой пояс GMT +3, время: 22:50. |