25.10.2014, 15:17
|
|
Профессор
|
|
Регистрация: 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.
|
|
25.10.2014, 15:20
|
Кандидат Javascript-наук
|
|
Регистрация: 14.10.2014
Сообщений: 117
|
|
Erolast,
Поправь код, у тебя ошибка там. Как поправишь, будем дальше смотреть.
|
|
25.10.2014, 15:52
|
|
Профессор
|
|
Регистрация: 24.09.2013
Сообщений: 1,436
|
|
Пардон, поправил.
|
|
25.10.2014, 15:59
|
Кандидат Javascript-наук
|
|
Регистрация: 14.10.2014
Сообщений: 117
|
|
Erolast,
Че то я не догоняю, до конца, че там происходит. Ща некогда, потом подумаю. Отпишусь завтра.
|
|
25.10.2014, 18:10
|
|
Профессор
|
|
Регистрация: 24.09.2013
Сообщений: 1,436
|
|
Сначала
Цитата:
|
не надо п*ть, когда не знаешь. Впрочем, тебе не впервой.
пиши жеквери, это самое твое.
я распинаться перед тобой не буду, один х не поймшь
|
, а потом "что-то не догоняю, что происходит"? Найс.
|
|
25.10.2014, 19:10
|
Профессор
|
|
Регистрация: 16.03.2010
Сообщений: 1,618
|
|
Сообщение от Erolast
|
а потом "что-то не догоняю, что происходит"? Найс.
|
Ага, тоже доставило. Это ж классика. Что там думать?
|
|
25.10.2014, 19:33
|
Аспирант
|
|
Регистрация: 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. Ну тут без меня началось... Я не встреваю в междусобойчик.
|
|
25.10.2014, 19:37
|
|
Профессор
|
|
Регистрация: 24.09.2013
Сообщений: 1,436
|
|
Цитата:
|
А почему вместо Object.Create() не использовать просто new? Или тут в качестве параметра descriptors задаётся что-то жизненно важное?
|
Ты имеешь в виду, почему не "new Parent()"? Потому что, во-первых, нам не нужно вызывать конструктор, во-вторых, Class.prototype.constructor должен быть равен самому классу, а при создании через new он будет равен родителю.
Но ты таки присмотрись к ES6.
Последний раз редактировалось Erolast, 25.10.2014 в 19:43.
|
|
25.10.2014, 19:51
|
Аспирант
|
|
Регистрация: 15.02.2013
Сообщений: 55
|
|
Сообщение от Erolast
|
Ты имеешь в виду, почему не "new Parent()"? Потому что, во-первых, нам не нужно вызывать конструктор, во-вторых, Class.prototype.constructor должен быть равен самому классу, а при создании через new он будет равен родителю.
Но ты таки присмотрись к ES6.
|
ES6... Смущает то, что его, как ты говоришь, нужно "компилировать". Тем более туда ведь ещё будут вноситься изменения. Не придётся ли потом код переписывать?
Спасибо за пример реализации. Буду курить дальше.
|
|
25.10.2014, 20:00
|
|
Профессор
|
|
Регистрация: 24.09.2013
Сообщений: 1,436
|
|
Цитата:
|
ES6... Смущает то, что его, как ты говоришь, нужно "компилировать".
|
После должной настройки это один хоткей в редакторе.
Цитата:
|
Тем более туда ведь ещё будут вноситься изменения. Не придётся ли потом код переписывать?
|
До релиза три месяца осталось. Каких-то глобальных изменений уже не должно быть.
Последний раз редактировалось Erolast, 25.10.2014 в 20:05.
|
|
|
|