价值是什么" e"在doPost(e)和其他一些函数中是什么意思?

时间:2017-01-11 08:37:05

标签: google-apps-script

以下是代码,我指的是:

function doPost(e) {

  try {
    Logger.log(e);
 MailApp.sendEmail(TO_ADDRESS, "Contact Form Submitted",
                      JSON.stringify(e.parameters));
    record_data(e);
    return ContentService 
          .createTextOutput(
            JSON.stringify({"result":"success",
                            "data": JSON.stringify(e.parameters) }))
          .setMimeType(ContentService.MimeType.JSON);

" e"没有提前宣布,但仍然是" e"用于将数据从一个函数传递到另一个函数。

我最近开始学习应用程序脚本(JS)并且知道声明如何工作。这是我的理解。

要获得定义的结果,我们应该在函数中传递参数,如果它们之前被声明为变量:

var e = "something";
function doPost(e) {here goes the further code};

但在初始代码中,值" e"它没有任何价值,因为它没有定义。我的理解是否完美?

3 个答案:

答案 0 :(得分:2)

当调用函数时,函数参数被赋值

在这个例子中:

var e = "something";
function doPost(e) {here goes the further code};

您定义了两个不同的变量,都称为e。一个在函数外部,并赋值"something"。另一个是在函数内部,如果该函数被称为,可能会或可能不会获得值。您提供的代码示例不会调用该函数(或使用它执行任何其他操作),因此我们无法确定该值是什么。

doPost("Foo"); // the inside-`e` is "Foo"
doPost(e); // the inside-`e` has the same value as the outside-`e` (at least unless and until you assign a new value to it inside the function) 
doPost(); // the inside-`e` is `undefined`

变量名e 传统用于保存Event objects,它通常被传递给一个被指定为事件监听器的函数。

事件监听器通常由来自程序外部的事件触发,就像用户单击鼠标按钮一样,因此很少编写分配值的代码。

e.g。在网页中:

document.addEventListener("click", doPost);

在这种情况下,addEventListener是由浏览器供应商(而不是页面作者)编写的函数。它(或浏览器内置的其他代码)将调用doPost并传递e的值,因此您永远不会看到该代码。您只知道如果用户点击过,将使用Event对象调用doPost

答案 1 :(得分:0)

在JavaScript中function doPost(e)是变量声明,您可以通过将参数传递给函数来为其赋值。但是,即使你的函数需要一个doPost(1,2,3,4,5,6,7,8);而你没有传递一个代码执行得很完美。

由于Javascript的性质,您声明的函数会从其他函数执行,并且可能会在那里传递一些值。

还可以使用其他参数调用arguments等函数的签名。

例如:doPost(){ console.log(arguments); }

您可以从函数中的$ python Adafruit_Python_DHT/examples/simpletest.py Traceback (most recent call last): File "Adafruit_Python_DHT/examples/simpletest.py", line 39, in <module> humidity, temperature = Adafruit_DHT.read_retry(sensor, pin) File "build/bdist.linux-armv7l/egg/Adafruit_DHT/common.py", line 90, in read_retry File "build/bdist.linux-armv7l/egg/Adafruit_DHT/common.py", line 77, in read File "build/bdist.linux-armv7l/egg/Adafruit_DHT/Beaglebone_Black.py", line 213, in read RuntimeError: Error accessing GPIO. Make sure program is run as root with sudo! 变量访问所有这些内容。

FROM <from_specification>  

<from_specification> ::=   
        <from_source> {[ JOIN <from_source>][,...n]}  

<from_source> ::=   
          <collection_expression> [[AS] input_alias]  
        | input_alias IN <collection_expression>  

<collection_expression> ::=   
        ROOT   
     | collection_name  
     | input_alias  
     | <collection_expression> '.' property_name  
     | <collection_expression> '[' "property_name" | array_index ']' 

答案 2 :(得分:0)

通常e表示引发事件,例如:

$(document).on('click', '.el', function (e) {});

在此代码中,e将包含点击事件。

在您的代码中,只需检查是谁调用此doPost()。与doPost.apply(this, [e])

一样

请注意,您可以调用doPost()而无需将e实际传递给函数,也不会抛出任何错误。比typeof e内部函数将返回undefined