Показать сообщение отдельно
  #16 (permalink)  
Старый 25.02.2010, 09:32
Кандидат Javascript-наук
Отправить личное сообщение для Бобр Посмотреть профиль Найти все сообщения от Бобр
 
Регистрация: 03.11.2008
Сообщений: 116

Сообщение от Kolyaj
Тонкости ECMA-262-3. Часть 7. ООП.
Всё равно не понятно. Как отличить функцию от функции-конструктора?

Что означает знак доллара в "if(!$.isArray(text)) {" ?

Не могу понять код:
// 1)
  function V2(a, b) {
    this.a = a;
    this.b = b;
  }

  // 2)
  v2 = function(a, b) { return new V2(a, b); }

  // 3)
  V2.prototype.mul = function(x) { return v2(this.a*x, this.b*x); }
  V2.prototype.magnitude = function() { return Math.sqrt(this.a*this.a + this.b*this.b)}
  V2.prototype.normalize = function() { return this.mul(1/this.magnitude()); }


1) - объявляем функцию, но не выполняем.
2) - Это тоже самое, что и
function v2(a, b) { return new V2(a, b); }

или не тоже самое? Вроде как функция которая возвращает объект со свойствами а и b.
3) Вообще не понял. Объявляем прототипом функцию, которая возвращает объект который вызывает функцию, которая является функцией того, чему объявляем прототип. Что здесь this? Чего всё это делает - вообще ничего не понял.
Ответить с цитированием