Этот "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 знают. |
Цитата:
http://javascript.ru/forum/misc/5392...tml#post358084 |
class TimePeriod
{
private int _seconds;
public int Seconds
{
get { return _seconds; }
set { _seconds = value; }
}
}
TimePeriod newValue = new TimePeriod();
newValue.Seconds = 10;//присвоит 10
int f = newValue.Seconds;//возмет значение т.е. 10
Но на этом использование Second ограничивается, только присваивание и взятие значения. |
Цитата:
|
| Часовой пояс GMT +3, время: 19:03. |