我应该打电话给这些功能"程序"?

时间:2017-04-25 10:02:43

标签: function terminology procedure

我为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

1 个答案:

答案 0 :(得分:1)

某些语言确实区分了不返回值的过程和函数,这些过程在数学上说,调用不能返回值的函数甚至是不正确的。

然而,大多数语言都称之为“#34;功能"这已经超过50年了,所以如果你打电话给一个没有返回价值的子程序,那么没有人会纠正你,至少在谈到这个问题时用仅具有javascript等功能的语言编写的代码。

顺便说一句,naming-conventions标记很可能不合适,用于解答如何在实际代码中命名内容的问题,这在这里看起来并非如此。