很多人(比如我)习惯于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;
}
}
注意定义对象的类在创建对象的行之后如何。以上工作(我可能会让语法有点错误)吗?
答案 0 :(得分: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
,也可以毫无错误地创建此JavaScript函数。但必须在调用f()
时定义它。
我们可以谈论和讨论与某些语言相关的这些事实。但是有很多语言,它们都是不同的。如果你对这个问题感到好奇,我可以建议你学习一些其他几种语言(至少有一种语言和一种功能)。
答案 1 :(得分:0)
许多脚本语言(如PHP和Ruby)按顺序执行。
这是脚本语言的租户。