Ruby toplevel == глобальный объект JS? - PullRequest
1 голос
/ 08 марта 2011

Возвращаясь к Руби из JS, я думаю, что было бы легко узнать, если бы я сравнил и сопоставил эти два.Когда я наткнулся на Ruby toplevel , я не могу не думать о нем как о похожем на глобальный объект (объект окна) в JavaScript.*

Ответы [ 2 ]

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

Это не похоже ни в каком значимом смысле, за исключением того, что оба объекта действуют как this / self вне контекста любого другого объекта.В любом другом отношении они совершенно разные.Как правило, нет полезного способа ссылаться на main за пределами верхнего уровня, как в случае с window.Глобальные переменные - это настоящие глобальные переменные, а константы или методы, определенные в контексте main, на самом деле не определены в main, а в классе Object.

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

НЕТ , вы не правы.

Верхний уровень Ruby - это просто Объект.Каждая иерархия верхнего уровня заканчивается в Object.Другими словами, каждая вещь рассматривается как объект.

Вы путаете объекты верхнего уровня с объектами, которые являются общими для всех экземпляров.

в Javascript объект окна является верхним и может использоваться совместно (вы можете называть это статическим) при нескольких вызовах на одной странице.Вот почему мы назвали его глобальным объектом.

Правильно сказать, и в Javascript, и в Ruby верхний уровень является объектом (Window по-прежнему является объектом в javascript).

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