Obiekty JavaScript przypisują funkcję do właściwości

Szukałem i walczyłem z następującym przykładem:

var player1= {name: "Chris", score: 1000, rank: 1};
var player2= {name: "Kristofer", score: 100000, rank: 2};

function playerDetails(){
alert("The name of the player is "+ this.name + "."+ " His score is : "+ this.score + "and his rank : "+ this.rank);
}
player1.logDetails= playerDetails;
player2.logDetails= playerDetails;

player1.logDetails();
player2.logDetails();

Z tego co wiemplayer1.logDetails jest właściwością player1 lub metodą player1. Nie mogę zrozumieć, w jaki sposób autor przypisuje właściwość do funkcji. Nie rozumiem też, dlaczego tak napisałbyś zamiast: player1.logDetails = playerDetails (); które próbowałem i nie działa.

Potem dzwoniplayer1.logDetails() która jest funkcją, ale nigdzie nie zadeklarowana. (?)

Jeśli ktoś mógłby pomóc? Z góry dziękuję

questionAnswers(4)

yourAnswerToTheQuestion