Обновить
2
0
Dmitry Soshnikov@dsCode

Пользователь

Отправить сообщение
> А можно увидеть ваши 4-15 строк, делающий все перечисленное в статье?

Самый простой и классический пример (паттерн).

function inheritePrototype(child, _super) {
    var __inheritance = function () {};
    __inheritance.prototype = _super.prototype;
    child._super = _super;
    child.prototype = new __inheritance();
    child.prototype.constructor = child;
}

// пример

function A() {
  this.state = 10;
}

A.prototype.test = function () {
  alert('A.test');
};

function B() {
  B._super.apply(this, arguments);
}
inheritePrototype(B, A);

B.prototype.test = function () {
  B._super.prototype.test.apply(this, arguments);
  alert('B.test');
};

var b = new B();
b.test();
alert(b.state);


Естественно, можно оформить в нужном виде (например, свойством функции или ещё как), но внутренности — есть одна из реализаций, того, что Вам нужно. Можно наследоваться, вызвать одноименные методы и базового конструктора. То, что у Вас названо статическими свойстами — можно так же положить в прототип, или сделать свойствами коструктора.
А при чём здесь jQuery? А обёртка для связки прототипов, задания базового конструктора и прочий дополнительных полезных слотов занимает 4-15 строк.
Да, на всякий сайтах работы, как правило, в качестве работодателей сидят девочки-рекрутёры, которые далеки от этих слов. Их задача пригласить на собеседование человека для проверки личностных качеств. А уже дальше, если он подойдёт, его направят в компанию, где будет уже разговор о Python и Django, а не Pithon и Jamba.
Ага, к концу недели и полноценной бородой можно назвать =)
Всего-то пару селекторов и «цикл» (в 6-7 строчках из 268). Я имею в виду, что то же самое можно было сделать без JQ (и там не «велосипеды» были бы даже), и Вы не обрекли бы пользователей своего скрипта цеплять ещё тонну кода.

Впрочем, конечно, Вам решать ;)
У Вас jQuery используется всего в паре строк, какой смысл был вообще её использовать?
> в опере массив — это не тип, а интерфейс

Ты про исходники движка JS в Опере? Не знаю, может быть, я не смотрел их (только Sdiper Monkey и Rhino смотрел). В Spider Monkey, там однозначно можно определить по типу (js_ArrayClass).

Ну, а, если говорить об ECMA, то там тип Array не выделяется отдельно.
Ага, опечатка, спасибо =)
> что значят все эти строки?

Инструкции, выражения JS. Код JS.

> ну реально не понятно откуда и как ожидать многие должны были 000111222?

Всё дело в глобальных и локальных переменных. Переменные внутри функции с ключевым словом var считаются локальными в пределах этой функции:

function test() {
  var a = 10; // локальная переменная, видна только внутри функции test
  alert(a);
}

test(); // 10
alert(a); // ошибка, нет такой переменной в глобальной области

В свою очередь, если в коде встречается присвоение «переменной» без ключевого слова var, то такая переменная всегда будет глобальной (выполните код выше, только без var, просто a = 10; увидите, что переменная «a» стала глобальной и доступна за пределами функции).

Поэтому цикл, запускаемый в глобальной области, сработает всего один раз, т.к. условие «q < 3» будет истинно после первого выполнения функции «makeSomeAction( q );» (внутри функции используется та же глобальная переменная, которая по выходу из внутреннего цикла, будет иметь значение 3).

> makeSomeAction( someVariable ) — это просто так захотелось назвать или чтото значит?

Просто название функции, так захотелось.
А, т.е., всё-таки, JS для Вас — новая технология? И своими наработками, интересными решениями (возможно, сторонними) и т.д. к моменту появления либ типа jQuery, Prototype и т.д. Вы не успели обрасти? Ну это не страшно, вероятно наработки сторонних либ показались изящней ;)
Ну вот очень вероятно, что при таких Ваших высоких знаниях и профессионализме (ну а как же? — в сторонней либе легко быстро разберусь, допишу, адаптирую, просмотрю, проанализирую, оптимизирую и т.д. ;)), у Вас, к тому моменту, как Вы столкнулись с этими библиотеками, должны были существовать свои — отточенные и надёжно работающие. Я не прав? ;)
Да нет, просто всё дело в реализации .apply'я в Опере. Жаль, но эта проверка не работает для её.

с тем же

var X = function () {};
X.prototype = [];
var x = new X();

isArray(x); // true :(

В общем случае, полагаться на реализации тоже не стабильно — хрен знает, насколько та или иная реализация отойдёт от стандарта.
А, слово «скрипт» сбило с толку. Хорошо, перефразирую — при входе в контекст исполнения, но до начала его исполнения. Если контекст один — глобальный, то тут можно сказать и «весь скрипт».

> The scope of…

А тут уже говорится про scope (область видимости).
Почитайте пункт 10.1.3 стандарта
> так что их скрипт я изнутри только бы проглядел пару минут

На предмет чего?
Ну, если Вы в силах расширить, дописать, виджет, почему нет? Значит Вы отлично знаете предыдущий уровень абстракции, и нечего волноваться. «Это» вписывается в Ваше относительное «нормально» — ну и всё.
> я предпочитаю пользоваться наивысшим доступным уровнем абстракции

Да, туда, в принципе, всё движется.

Хотя, зависит это от задач. Если у Вас какой-то среднестатистический сайт — то вполне подойдут обобщённые, не оптимальные, решения, если высоконагруженный проект, где нужно выжимать мелочи, то Вы будете оптимизировать эти скрипты, либо напишите свои. Главное, чтобы вы действительно смогли доработать, расширить и т.д. стороннюю разработку. А иначе, можно услышать: «Этот фреймворк такого не поддерживает :(, мы не можем это реализовать, т.к. наш проект полностью завязан на него». Если это не про Вас — смело используйте любую абстракцию на относительно приемлемом для Вас уровне.
> мне достаточно приемлевого качества в приемлемые сроки

ну да, на данный относительный критерий посягать вряд ли стоит
> П.С.
> Почему бы не…

Да нет, конечно, это замечательно, особенно, если Вы, как профи, готовы подписаться под «отлаженные, проверенные». Передача и синтез знаний — это хорошо.

> О, а я еще ОС использую в которой не могу ответить за каждую строчку, и вебсервер, и интерпретатор, ужас!

О, а эту тему я называю «уровни абстракции», на которых программист подключается к своему творческому пути.

Информация

В рейтинге
Не участвует
Откуда
Санкт-Петербург, Санкт-Петербург и область, Россия
Дата рождения
Зарегистрирован
Активность