function player(){
this.hitpoints =100;
this.attack = function attack(opponent){
opponent.hitpoints -= 10;
}
}
var p1 = new player();
var p2 = new player();
p1.name = "ali";
p2.name = "ahmed";
p1.attack(p2);
alert(p2.name+"has"+p2.hitpoints+"left behind");
Выход выше кодпередачи аргументов в функции Constructer в JavaScript
Ahmed имеет 90 осталось позади.
Но всякий раз, когда я изменить свой код p1.attack(p2.name;
вместо p1.attack(p2);
то он будет выводить следующий результат:
Ahmed имеет 100 осталось позади.
Почему этот результат выводится?
Я новичок в Javascript, я ничего не знаю об объектах. Я просто хочу знать, как аргументы должны быть переданы в этой конкретной функции attack()
.
Пожалуйста, найдите время, чтобы убедиться, что код в вопросе действительно является кодом, который вы используете, и используйте правильный синтаксис в тексте вопроса. Это помогает убедиться, что ваш вопрос ясен. –
Это потому, что вы даете объект методу 'атака'. Когда вы даете ему параметр 'p2.name', вы даете ему строку. – Cyval
На данный момент несколько разных людей отредактировали ваш вопрос, и я совсем не ** ** уверен, что он действительно спрашивает, что вы хотите спросить. Пожалуйста, удалите его и задайте вопрос, обращая внимание на детали. Подробности имеют значение в программировании, а также в вопросах программирования. –