Функция пользователь (имя1, возраст, страна) {this.name1 = name1; this.age = возраст; this.country = страна; } user.prototype.yourName = function () {console.log (`Ваше имя $ {name1}`); } user.prototype ....
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
Вы используете прототип в 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}`);
}
Похожие вопросы
Новые вопросы
javascript
По вопросам программирования на ECMAScript (JavaScript / JS) и его различных диалектах / реализациях (кроме ActionScript). Включите все соответствующие теги в свой вопрос; например, [node.js], [jquery], [json] и т. д.