Николай Веселуха
Высший разум
(382151)
9 лет назад
// а так не пробовали?
function Person(name, patronymic, surname) {
this.name = name;
this.patronymic = patronymic;
this.surname = surname;
}
Person.prototype = {
constructor: Person,
fullName: function () {
return this.surname + ' ' + this.name + ' ' + this.patronymic;
}
};
var ivanov = new Person('Сергей', 'Кузьмич', 'Иванов');
var petrov = new Person('Иван', 'Фомич', 'Петров');
console.log(ivanov.fullName());
console.log(petrov.fullName());
Muslim Abdullah
Мастер
(1000)
9 лет назад
Очевидо потому что строка не может быть использована в качестве идентификатора.
В обращении через квадратные скобки как раз используется строка (даже если число будет передано, оно будет автоматически преобразовано в строку).
firstName: "Василий",
surname: "Петров",
patronym: "Иванович"
};
function showFullName(firstPart, lastPart) {
alert( this.firstPart + " " + this.lastPart );
}
showFullName.call(user, 'firstName', 'surname') // "Василий Петров"
showFullName.call(user, 'firstName', 'patronym') // "Василий Иванович"
А вот так работает
function showFullName(firstPart, lastPart) {
alert( this[firstPart] + " " + this[lastPart] );
}