以下是代码,我指的是:
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"它没有任何价值,因为它没有定义。我的理解是否完美?
答案 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