The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Утверждён стандарт ECMAScript 6"
Отправлено Аноним, 18-Июн-15 17:55 
var Polygon = {
  create: function(height, width) {
    let self = Object.create(this);
    self.name = 'Polygon';
    self.height = height;
    self.width = width;
    return self;
  },
  sayName: function() {return 'Hi, I am a ' + this.name + '.'},
  setName: function(name) {this.name = name}
}

var AreaPolygon = Object.create(Polygon);
AreaPolygon.predoc = Polygon;
AreaPolygon.area = function(){return this.height * this.width};
AreaPolygon.sayName = function() {
  return this.predoc.sayName.call(this) + " My area is " + this.area() + " of square something."
}

var ap = AreaPolygon.create(300,400);
ap.setName('Rectangle');

console.log(ap.sayName())

Да выше работает, но удобнее один раз указать родителя для объекта и потом на него ссылаться.


А вот если объект вместо Ява-стайл сеттеров и геттеров, то тут становится уже сложнее, по крайне мере навскидку решение мне не приходит в голову:

var Polygon = {
  create: function(height, width) {
    let self = Object.create(this);
    self.name = 'Polygon';
    self.height = height;
    self.width = width;
    return self;
  },
  get pname() {return 'Hi, I am a ' + this.name + '.'},
  set pname(name) {this.name = name}
}
...

Есть что предложить?

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру