我为Google Chrome制作了一个插件。它是一个用于浏览器自动化的脚本工具 - 它执行javascript文件中定义的指令,然后单击链接,填写表单等等。
带有说明的脚本的简单示例如下所示:
function tron_main(step) {
switch (step) {
case 0:
tron_visit('http://www.example.com');
break;
case 1:
tron_click('#login-button');
break;
case 2:
tron_fill('#login-form input.username', 'admin', 1);
tron_fill('#login-form input.password', 'password123', 1);
tron_click('#login-form input[type="submit"]', 1);
break;
case 3:
tron_end('End of TRON, we should be logged in').
break;
}
}
打开网址,然后点击登录按钮,然后填写并提交登录表单。
还有可能使用"辅助功能" (我现在称之为)重复性任务 - 类似于程序,子程序,包含自己的一组指令。
使用这些"辅助功能":
的示例function tron_main(step) {
...
case 3:
// execute secondary function tron_log_me_in()
tron_execute('tron_log_me_in');
break;
...
}
// our secondary function
function tron_log_me_in(step) {
switch (step) {
case 0:
tron_click('#login-button');
break;
case 1:
tron_fill('#login-form input.username', 'admin', 1);
tron_fill('#login-form input.password', 'password123', 1);
tron_click('#login-form input[type="submit"]', 1);
break;
case 2:
// terminate secondary function and return to tron_main() function
tron_return();
break;
}
}
我的问题是,调用这些辅助功能是正确的,并且#34; PROCEDURES"因为它不返回任何值,只执行一组指令?即使它实际上是一个javascript函数?或者是否有更合适的命名约定用于这样的"结构"?
完整文档了解更多详情:http://automatron.activit.sk
答案 0 :(得分:1)
某些语言确实区分了不返回值的过程和函数,这些过程在数学上说,调用不能返回值的函数甚至是不正确的。
然而,大多数语言都称之为“#34;功能"这已经超过50年了,所以如果你打电话给一个没有返回价值的子程序,那么没有人会纠正你,至少在谈到这个问题时用仅具有javascript等功能的语言编写的代码。
顺便说一句,naming-conventions标记很可能不合适,用于解答如何在实际代码中命名内容的问题,这在这里看起来并非如此。