Javascript-форум (https://javascript.ru/forum/)
-   Работа (https://javascript.ru/forum/job/)
-   -   Требуется Front-end developer. От 70 000 руб. Москва. Снегов ООО. (https://javascript.ru/forum/job/30634-trebuetsya-front-end-developer-ot-70-000-rub-moskva-snegov-ooo.html)

Magneto 20.10.2012 11:26

Цитата:

Сообщение от Nekromancer
Где вы ихние тест задания находите то?)


Цитата:

Сообщение от Gozar
Цитата:
hr[cat]cheloveche.ru!

Вакансия на нашем сайте:
http://www.cheloveche.ru/jobs#frontend


.......

monolithed 20.10.2012 13:25

Nekromancer,
http://www.cheloveche.ru/jobs#frontend

12345c 24.10.2012 14:46

Цитата:

Но всегда это будет один вид наследования -- прототипный.
Можно извратиться и сделать непрототипное (все свойства наследовать через присваивание в конструкторе). Вот и разнообразие.

А вообще, я был у них года 1.5 назад в офисе, он приличный. Им, видимо, не понравились мои несколько завышенные (по сравнению с ними) тыс на 15 требования). И было впечатление, что больше верстальщика ищут. Но сейчас - это вообще перл. Требования к продвинутому JS-нику, а з-п хорошего верстальщика. По обязанностям - скорее всего, и сейчас так и есть. Но масса требований оттолкнёт нормальных работников, привлечёт массу аферистов, которые будут утверждать, что всё это знают. И будут выводить их на чистую воду, до первого прокола, когда действительно поверят ему. Впрочем, всё это можно знать поверхностно, на уровне нескольких слов (в стиле индусского резюме, но это не знание в смысле профессионального. (А на чём у них бекенд - так и не понятно из описания.)

monolithed 25.10.2012 02:31

Цитата:

Сообщение от 12345c
Можно извратиться и сделать непрототипное (все свойства наследовать через присваивание в конструкторе). Вот и разнообразие.

Одноразовое копирование свойств объекта не есть наследование!

trikadin 25.10.2012 19:17

Цитата:

Сообщение от 12345c
Можно извратиться и сделать непрототипное (все свойства наследовать через присваивание в конструкторе). Вот и разнообразие.

В js св-ва прототипа могут появляться динамически. Как ты будешь их добавлять для уже созданных объектов?

tenshi 25.10.2012 20:21

Цитата:

Одноразовое копирование свойств объекта не есть наследование!
почему?

tenshi 25.10.2012 20:23

Цитата:

Сообщение от trikadin (Сообщение 212281)
В js св-ва прототипа могут появляться динамически. Как ты будешь их добавлять для уже созданных объектов?

при чём тут прототип, если наследование не прототипное?

trikadin 26.10.2012 02:31

Цитата:

Сообщение от tenshi
при чём тут прототип, если наследование не прототипное?

Сглючило меня, да. Тем не менее, как будет происходить наследование, интересно?

12345c 26.10.2012 04:59

Цитата:

Цитата:

при чём тут прототип, если наследование не прототипное?
Сглючило меня, да. Тем не менее, как будет происходить наследование, интересно?
На следующем поколении эти свойства попадают в прототип и наследуются через него (по другому и быть не может, если мы используем классическое C.prototype = new B(); ). Но в пределах первого поколения мы можем вносить свойства 2 путями - через прототип B.prototype.prop222 = 'xxx'; или прямым присваиванием this.prop222 = 'yyy'; . Разница оказывается в том, что прямое - на 1 поколение более приоритетно: при совпадении свойств в С будет 'yyy', а переопределение прототипа B.prototype.prop222 не повлияет на C.prototype.prop222. Чтобы убить прототипность и дальше - нужно, конечно, переприсваивать свойства в каждом поколении. Платить придётся количеством действий, объёмом памяти для потомков. Зато - непрототипность.
Цитата:

Одноразовое копирование свойств объекта не есть наследование!
В пределах 1 поколения - это наследование. Тут как раз дилемма: или делаем копирование на каждом поколении, или полагаемся далее на прототипы. В результате получим 2 различных типа наследования.

monolithed 26.10.2012 22:18

Цитата:

Сообщение от 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


Часовой пояс GMT +3, время: 00:05.