Для использования вызова функции со свойствами через apply или call работает следующий код:
var user = {
firstName: "Василий",
surname: "Петров",
patronym: "Иванович"
};
function showFullName(firstPart, lastPart) {
alert( this[firstPart] + " " + this[lastPart] );
}
// f.call(контекст, аргумент1, аргумент2, ...)
showFullName.call(user, 'firstName', 'surname') // "Василий Петров"
showFullName.call(user, 'firstName', 'patronym') // "Василий Иванович"
Вопрос такой: почему с this используются квадратные скобки со свойствами без кавычек, тогда как в js для обращения к свойству name объекта obj используется либо obj.name либо obj["name"]?