0

很多人(像我一样)习惯于 JavaScript,因为代码是按加载顺序执行的,即从上到下,所以如果一个元素还没有加载,就不可能对其进行操作,或者如果一个函数尚未定义,无法调用它。由于 JS(和 VBscript,但不太流行)是唯一的互联网客户端编程(脚本,如果你愿意)语言,因此是唯一遇到必须从不同位置加载问题的语言,我假设没有其他语言可以做到这一点,即可以调用该语言中的函数/方法,同时在文档中稍后对其进行定义。这个假设是正确的,还是有其他语言也这样做?

编辑:对于那些不明白我的意思的人,这里有一个 Java 示例:

public class MainClass {
    public static void main(String[] args) {
        SomeClass SomeObject = new SomeClass;
        SomeObject.changeSomeVariable("someValue");
    }
}
class SomeClass {
    String someVariable;
    void changeSomeVariable(newValue){
        someVariable = newValue;
    }
}

注意定义对象的类是如何在创建对象的那一行之后出现的。上面的方法会起作用吗(我的语法可能有点错误)?

4

2 回答 2

2

例如,在 C++(编译语言)中,您可以使用一个类或一个函数,而您只知道它的定义,而不知道实现。

int some_function(int i); 
// we know the name of the function, the types of its parameters and
// its return value. We don't know, however, what does this function 
// exactly do.

int main() {
  int x = some_function(42);
}

当然,函数的实现必须放在某个地方,否则链接会失败。

但如果我们不知道函数或类的名称或签名,我们就无法使用它。与编译语言相反,在脚本语言(如 Python、PHP、JavaScript 等)中,您可以这样做:

function f() {
  return some_function(42);
}

即使some_function定义了 no,也可以创建此 JavaScript 函数而不会出错。但它必须在何时f()被调用时被定义。

我们可以相对于某些语言谈论和谈论这些事实。但是有很多语言,它们都是不同的。如果您对这个问题感到好奇,我可以建议您稍微学习其他几种语言(至少一种编译语言和一种功能语言)。

于 2012-06-15T11:27:15.293 回答
0

许多脚本语言(如 PHP 和 Ruby)按顺序执行。

那是脚本语言的租户。

于 2012-06-15T11:15:02.703 回答