20.10.2012, 11:26
|
|
Люмус, Емаксос Developer!
|
|
Регистрация: 06.05.2010
Сообщений: 677
|
|
Сообщение от Nekromancer
|
Где вы ихние тест задания находите то?)
|
.......
|
|
20.10.2012, 13:25
|
Особый гость
|
|
Регистрация: 02.04.2010
Сообщений: 4,260
|
|
|
|
24.10.2012, 14:46
|
Аспирант
|
|
Регистрация: 01.03.2009
Сообщений: 33
|
|
Цитата:
|
Но всегда это будет один вид наследования -- прототипный.
|
Можно извратиться и сделать непрототипное (все свойства наследовать через присваивание в конструкторе). Вот и разнообразие.
А вообще, я был у них года 1.5 назад в офисе, он приличный. Им, видимо, не понравились мои несколько завышенные (по сравнению с ними) тыс на 15 требования). И было впечатление, что больше верстальщика ищут. Но сейчас - это вообще перл. Требования к продвинутому JS-нику, а з-п хорошего верстальщика. По обязанностям - скорее всего, и сейчас так и есть. Но масса требований оттолкнёт нормальных работников, привлечёт массу аферистов, которые будут утверждать, что всё это знают. И будут выводить их на чистую воду, до первого прокола, когда действительно поверят ему. Впрочем, всё это можно знать поверхностно, на уровне нескольких слов (в стиле индусского резюме, но это не знание в смысле профессионального. (А на чём у них бекенд - так и не понятно из описания.)
|
|
25.10.2012, 02:31
|
Особый гость
|
|
Регистрация: 02.04.2010
Сообщений: 4,260
|
|
Сообщение от 12345c
|
Можно извратиться и сделать непрототипное (все свойства наследовать через присваивание в конструкторе). Вот и разнообразие.
|
Одноразовое копирование свойств объекта не есть наследование!
|
|
25.10.2012, 19:17
|
|
Модератор
|
|
Регистрация: 27.04.2010
Сообщений: 3,417
|
|
Сообщение от 12345c
|
Можно извратиться и сделать непрототипное (все свойства наследовать через присваивание в конструкторе). Вот и разнообразие.
|
В js св-ва прототипа могут появляться динамически. Как ты будешь их добавлять для уже созданных объектов?
|
|
25.10.2012, 20:21
|
Профессор
|
|
Регистрация: 20.03.2008
Сообщений: 1,183
|
|
Цитата:
|
Одноразовое копирование свойств объекта не есть наследование!
|
почему?
__________________
.ня
|
|
25.10.2012, 20:23
|
Профессор
|
|
Регистрация: 20.03.2008
Сообщений: 1,183
|
|
Сообщение от trikadin
|
В js св-ва прототипа могут появляться динамически. Как ты будешь их добавлять для уже созданных объектов?
|
при чём тут прототип, если наследование не прототипное?
__________________
.ня
|
|
26.10.2012, 02:31
|
|
Модератор
|
|
Регистрация: 27.04.2010
Сообщений: 3,417
|
|
Сообщение от tenshi
|
при чём тут прототип, если наследование не прототипное?
|
Сглючило меня, да. Тем не менее, как будет происходить наследование, интересно?
|
|
26.10.2012, 04:59
|
Аспирант
|
|
Регистрация: 01.03.2009
Сообщений: 33
|
|
Цитата:
|
Цитата:
|
при чём тут прототип, если наследование не прототипное?
|
Сглючило меня, да. Тем не менее, как будет происходить наследование, интересно?
|
На следующем поколении эти свойства попадают в прототип и наследуются через него (по другому и быть не может, если мы используем классическое C.prototype = new B(); ). Но в пределах первого поколения мы можем вносить свойства 2 путями - через прототип B.prototype.prop222 = 'xxx'; или прямым присваиванием this.prop222 = 'yyy'; . Разница оказывается в том, что прямое - на 1 поколение более приоритетно: при совпадении свойств в С будет 'yyy', а переопределение прототипа B.prototype.prop222 не повлияет на C.prototype.prop222. Чтобы убить прототипность и дальше - нужно, конечно, переприсваивать свойства в каждом поколении. Платить придётся количеством действий, объёмом памяти для потомков. Зато - непрототипность.
Цитата:
|
Одноразовое копирование свойств объекта не есть наследование!
|
В пределах 1 поколения - это наследование. Тут как раз дилемма: или делаем копирование на каждом поколении, или полагаемся далее на прототипы. В результате получим 2 различных типа наследования.
|
|
26.10.2012, 22:18
|
Особый гость
|
|
Регистрация: 02.04.2010
Сообщений: 4,260
|
|
Сообщение от 12345c
|
В результате получим 2 различных типа наследования.
|
Сравним классическое наследование:
var A = {};
var B = Object.create(A);
A.property = 1;
alert(B.property); // 1
А вот это уже сложно назвать наследованием:
var extend = function(A, B) {
var __own__ = Object.prototype.hasOwnProperty;
for (var i in B)
__own__.call(B, i) && (A[i] = B[i]);
};
var A = {};
var B = {
foo: 1
};
extend(A, B);
B.bar = 1;
alert([
A.foo,
A.bar
]); // 1, undefined
|
|
|
|