Ruby toplevel == JS全局对象?

时间:2011-03-08 11:31:25

标签: javascript ruby

从JS来到Ruby,我认为如果我在这两者之间进行比较和对比,就会很容易学习。当我偶然发现Ruby toplevel时,我不禁想到它与JavaScript中的全局对象(窗口对象)类似。

我做出这个假设是否正确?

2 个答案:

答案 0 :(得分:1)

除了两个对象在任何其他对象的上下文之外充当this / self之外,它没有任何有意义的相似之处。在任何其他方面,他们是完全不同的。没有通常有用的方法来引用顶级以外的main,就像window一样。全局变量是真正的全局变量,main上下文中定义的常量或方法实际上并未在main上定义,而是在Object类上定义。

答案 1 :(得分:0)

没有,你错了。

Ruby顶级只是一个Object。每个顶级层次结构都以Object结尾。换句话说,每件事都被视为一个对象。

您将顶级对象与所有实例共享的对象混淆。

在Javascript中,窗口对象是最顶层的,可以跨同一页面的多个调用共享(你可以称之为静态)。这就是为什么我们把它称为全球对象。

正确的说法,在Javascript和Ruby顶层都是一个对象(Window仍然是javascript中的一个对象)。