Язык сценариев и скомпилированный язык - PullRequest
3 голосов
/ 31 марта 2011

У меня два вопроса:

  1. Как Jquery / MooTools расширяет синтаксис Javascript?Я имею в виду, почему вы можете просто иметь новый синтаксис для Jquery и MooTools, который не существует в Javascript?
  2. Поскольку MooTools позволяет пользователю иметь класс, наследования.Подобный интерпретируемый язык становится ближе к скомпилированному языку.Будут ли они в конечном итоге заменить Java (которая работает на JVM)?Или есть специфические аспекты Java, которых расширение Javascript никогда не достигнет?

Это могут быть глупые вопросы, но я действительно хочу, чтобы некоторые ключевые слова объяснили их.

Спасибо

Ответы [ 5 ]

3 голосов
/ 31 марта 2011

Одним из способов, которым JQuery производит впечатление переопределения языка, является использование оператора $. Однако может быть неясно, что $ это просто функция, объявленная в области окна (глобальной), поскольку $ является допустимым именем переменной в JavaScript:

Из источника:

jQuery = window.jQuery = window.$ = function( selector, context ) {
    // The jQuery object is actually just the init constructor 'enhanced'
    return new jQuery.fn.init( selector, context );
},
1 голос
/ 31 марта 2011

Как Jquery / MoonTool расширяет Синтаксис Javascript? Я имею в виду, почему вы можете просто иметь новый синтаксис для Jquery и MoonTool, который не существует в Javascript?

Ты не можешь. Синтаксис Javascript очень гибкий, поэтому вы можете добавить новую семантику (значение / функциональность) в существующий синтаксис множеством способов.

Поскольку MoonTool позволяет пользователю иметь класс, наследство. Интерпретированный такой язык становится все ближе на скомпилированный язык. Будут ли они в конечном итоге заменить Java (который работает на JVM)?

Интерпретированный и скомпилированный не имеет ничего общего с синтаксисом или семантикой языка. Кроме того, и Javascript, и Java обычно компилируются JIT в наши дни.

Или есть специфические аспекты Java это расширение для Javascript будет никогда не достигнешь?

Статическая проверка типов для одной вещи (если, конечно, спецификация языка не изменяется соответствующим образом. Но это, скорее всего, невозможно в разумном смысле). Или нативная поддержка обычных целых.

1 голос
/ 31 марта 2011

jQuery не расширяет синтаксис javascript - он использует только некоторые хитрые приемы, такие как использование переменной $. Классы MooTools на самом деле являются классом, который вы создаете. Ни один из них не расширяет синтаксис javascript, только делает его таким, используя умное использование переменных.

Что касается вашего второго вопроса о интерпретируемых и скомпилированных языках, ответ немного сложнее и, возможно, выходит за рамки моей компетенции. Попробуйте Google .

1 голос
/ 31 марта 2011

Они не расширяют синтаксис javascript, скажем. Они все еще должны соблюдать все грамматические правила javascript.

0 голосов
/ 31 марта 2011

Библиотеки, такие как jQuery и MooTools, не «расширяют» синтаксис JavaScript.Это все законный JavaScript.Они просто используют это таким образом, что вы не знакомы с.Например, $ в jQuery - это просто имя переменной, поскольку переменные JavaScript могут содержать $.

Кроме того, нет, JavaScript - это совершенно другое животное, чем Java.JavaScript - это объектно-ориентированный язык, но это делается по-другому.Я не знаком с MooTools, но они не делают ничего особенного.Может показаться, что они «меняют» JavaScript, но это не так.Просто не имеет смысла компилировать JavaScript.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...