Собственные функции-конструкторы и прототипы
Здравствуйте.
Допустим у нас есть собственный конструктор(пример из книги):
var Person = function (name) {
this.name = name;
this.say = function () {
return “I am “ + this.name;
};
};
далее автор размышляет: Цитата:
class Person {
constructor(name){
this.name = name;
}
say(){
return "I am " + this.name;
}
};
с одной стороны да, say(){} "пойдет" в прототип объекта, но с другой стороны, когда мы выполняем инструкцию
Person.prototype.say = function () {
return “I am “ + this.name;
};
то выполняем её один раз и далее "клепаем" объекты чколько угодно, имея в прототипе say(), в ES6 say() тоже пойдет в прототип, но будет писаться каждый раз - я правильно понимаю? как на ES6 выполнить
Person.prototype.say = function () {
return “I am “ + this.name;
};
внутри самого класса? например
console.clear();
class ProtoPerson {
constructor(){}
say(){
return "I am " + this.name;
};
};
class Person extends ProtoPerson {
constructor(name){
super();
this.name = name;
}
};
let pers = new Person("Luca");
console.log( pers.say() );
console.log(pers);
|
Цитата:
такая запись - именно эквивалент однократного выполнения
Person.prototype.say = function () {
return “I am “ + this.name;
};
|
| Часовой пояс GMT +3, время: 13:36. |