Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #21 (permalink)  
Старый 25.10.2014, 15:17
Аватар для Erolast
Профессор
Отправить личное сообщение для Erolast Посмотреть профиль Найти все сообщения от Erolast
 
Регистрация: 24.09.2013
Сообщений: 1,436

И не буду, пример неверен. Надо так:
function inherits(Child, Parent) {
  Child.prototype = Object.create(Parent.prototype, {
    constructor: {
      value: Child,
      writable: true,
      configurable: true,
      enumerable: false
    }
  })
}

function Interface(){};
function Class(){};

inherits(Class, Interface);

Interface.prototype.someValue = 1;
Class.prototype.someValue = 2;

alert((new Interface()).someValue);
alert((new Class()).someValue);

Последний раз редактировалось Erolast, 25.10.2014 в 16:13.
Ответить с цитированием
  #22 (permalink)  
Старый 25.10.2014, 15:20
Кандидат Javascript-наук
Посмотреть профиль Найти все сообщения от terminator-101
 
Регистрация: 14.10.2014
Сообщений: 117

Erolast,
Поправь код, у тебя ошибка там. Как поправишь, будем дальше смотреть.
Ответить с цитированием
  #23 (permalink)  
Старый 25.10.2014, 15:52
Аватар для Erolast
Профессор
Отправить личное сообщение для Erolast Посмотреть профиль Найти все сообщения от Erolast
 
Регистрация: 24.09.2013
Сообщений: 1,436

Пардон, поправил.
Ответить с цитированием
  #24 (permalink)  
Старый 25.10.2014, 15:59
Кандидат Javascript-наук
Посмотреть профиль Найти все сообщения от terminator-101
 
Регистрация: 14.10.2014
Сообщений: 117

Erolast,
Че то я не догоняю, до конца, че там происходит. Ща некогда, потом подумаю. Отпишусь завтра.
Ответить с цитированием
  #25 (permalink)  
Старый 25.10.2014, 18:10
Аватар для Erolast
Профессор
Отправить личное сообщение для Erolast Посмотреть профиль Найти все сообщения от Erolast
 
Регистрация: 24.09.2013
Сообщений: 1,436

Сначала
Цитата:
не надо п*ть, когда не знаешь. Впрочем, тебе не впервой.

пиши жеквери, это самое твое.

я распинаться перед тобой не буду, один х не поймшь
, а потом "что-то не догоняю, что происходит"? Найс.
Ответить с цитированием
  #26 (permalink)  
Старый 25.10.2014, 19:10
Профессор
Отправить личное сообщение для Sweet Посмотреть профиль Найти все сообщения от Sweet
 
Регистрация: 16.03.2010
Сообщений: 1,618

Сообщение от Erolast
а потом "что-то не догоняю, что происходит"? Найс.
Ага, тоже доставило. Это ж классика. Что там думать?
Ответить с цитированием
  #27 (permalink)  
Старый 25.10.2014, 19:33
Аспирант
Отправить личное сообщение для Voronar Посмотреть профиль Найти все сообщения от Voronar
 
Регистрация: 15.02.2013
Сообщений: 55

Сообщение от Erolast Посмотреть сообщение
И не буду, пример неверен. Надо так:
function inherits(Child, Parent) {
  Child.prototype = Object.create(Parent.prototype, {
    constructor: {
      value: Child,
      writable: true,
      configurable: true,
      enumerable: false
    }
  })
}

function Interface(){};
function Class(){};

inherits(Class, Interface);

Interface.prototype.someValue = 1;
Class.prototype.someValue = 2;

alert((new Interface()).someValue);
alert((new Class()).someValue);
А почему вместо Object.Create() не использовать просто new? Или тут в качестве параметра descriptors задаётся что-то жизненно важное?

P.S. Ну тут без меня началось... Я не встреваю в междусобойчик.
Ответить с цитированием
  #28 (permalink)  
Старый 25.10.2014, 19:37
Аватар для Erolast
Профессор
Отправить личное сообщение для Erolast Посмотреть профиль Найти все сообщения от Erolast
 
Регистрация: 24.09.2013
Сообщений: 1,436

Цитата:
А почему вместо Object.Create() не использовать просто new? Или тут в качестве параметра descriptors задаётся что-то жизненно важное?
Ты имеешь в виду, почему не "new Parent()"? Потому что, во-первых, нам не нужно вызывать конструктор, во-вторых, Class.prototype.constructor должен быть равен самому классу, а при создании через new он будет равен родителю.

Но ты таки присмотрись к ES6.

Последний раз редактировалось Erolast, 25.10.2014 в 19:43.
Ответить с цитированием
  #29 (permalink)  
Старый 25.10.2014, 19:51
Аспирант
Отправить личное сообщение для Voronar Посмотреть профиль Найти все сообщения от Voronar
 
Регистрация: 15.02.2013
Сообщений: 55

Сообщение от Erolast Посмотреть сообщение
Ты имеешь в виду, почему не "new Parent()"? Потому что, во-первых, нам не нужно вызывать конструктор, во-вторых, Class.prototype.constructor должен быть равен самому классу, а при создании через new он будет равен родителю.

Но ты таки присмотрись к ES6.
ES6... Смущает то, что его, как ты говоришь, нужно "компилировать". Тем более туда ведь ещё будут вноситься изменения. Не придётся ли потом код переписывать?

Спасибо за пример реализации. Буду курить дальше.
Ответить с цитированием
  #30 (permalink)  
Старый 25.10.2014, 20:00
Аватар для Erolast
Профессор
Отправить личное сообщение для Erolast Посмотреть профиль Найти все сообщения от Erolast
 
Регистрация: 24.09.2013
Сообщений: 1,436

Цитата:
ES6... Смущает то, что его, как ты говоришь, нужно "компилировать".
После должной настройки это один хоткей в редакторе.

Цитата:
Тем более туда ведь ещё будут вноситься изменения. Не придётся ли потом код переписывать?
До релиза три месяца осталось. Каких-то глобальных изменений уже не должно быть.

Последний раз редактировалось Erolast, 25.10.2014 в 20:05.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Добавить / удалить класс кликом fabrique Общие вопросы Javascript 4 03.09.2014 04:43
Изменить класс родительского элемента STyLe Общие вопросы Javascript 1 29.05.2014 20:21
Как удалить класс у соседних элементов housewm Events/DOM/Window 4 11.03.2014 13:29
Передал аяксом класс в <div>, но как отловить событите клик на этот класс ? saturn Элементы интерфейса 11 31.05.2012 10:30
Jquery немогу установить класс! shureg Общие вопросы Javascript 4 26.10.2010 14:37