Функция пользователь (имя1, возраст, страна) {this.name1 = name1; this.age = возраст; this.country = страна; } user.prototype.yourName = function () {console.log (`Ваше имя $ {name1}`); } user.prototype ....

0
Rami Loai 15 Янв 2021 в 10:01

2 ответа

Лучший ответ

Добавьте ключевое слово this перед переменной для ссылки на переменные экземпляра объекта, вызывающего метод.

    function user(name1,age,country){
    this.name1=name1;
    this.age=age;
    this.country=country;
}
user.prototype.yourName=function(){
    console.log(`Your Name Is ${this.name1}`);
}
user.prototype.yourAge=function(){
    console.log(`Your Age Is ${this.age} & Your Age In Days Is ${this.age*365}`);
}
user.prototype.yourCountry=function(){
    console.log(`Your Country Is ${this.country}`);
}
let firstUser=new user('Any Name', 20 ,'Any Country');
firstUser.yourName();//name1 Is Not Defined
firstUser.yourAge();//age Is Not Defined
firstUser.yourCountry();//country Is Not Defined
1
Alex 15 Янв 2021 в 07:04

Вы используете прототип в Javascript

Таким образом, прототип позволяет использовать объектно-ориентированный синтаксис в обычном javascript, где вы можете наследовать свойство и метод конструктора.

Итак, в вашем случае

function user(name1,age,country){
    this.name1=name1;
    this.age=age;
    this.country=country;
}

Здесь, в методе user, вы определили свой constructor(), поэтому вам нужно получить доступ к значению в методе user.prototype.yourName. Следовательно, вам необходимо наследовать свойство конструктора с помощью this, потому что user.prototype.yourName будет иметь свою собственную область видимости.

user.prototype.yourName=function(){
    console.log(`Your Name Is ${this.name1}`);
}
user.prototype.yourAge=function(){
    console.log(`Your Age Is ${this.age} & Your Age In Days Is ${this.age*365}`);
}
user.prototype.yourCountry=function(){
    console.log(`Your Country Is ${this.country}`);
}
0
sourav satyam 15 Янв 2021 в 07:16
65731752