2017-01-11 52 views
-1

以下是代碼,我指的是:的「E」doPost(e)和其他一些函數中的值「e」是什麼意思?

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」被用來從一個函數傳遞到另一個數據。

我最近開始學習應用程序腳本(JS),並瞭解一些關於聲明如何工作的知識。這是我的理解。

爲了得到定義的結果,我們應該傳遞函數的參數,如果它的聲明變量之前一樣:

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

但在最初的代碼中,值「E」,在它沒有價值,因爲它不是定義。我的理解完美嗎?

回答

0

在JavaScript中e是變量聲明,您可以通過將參數傳遞給函數來爲其賦值。但即使你的函數期望e並且你沒有傳遞一個完美的代碼。

由於Javascript的性質,有些情況下您聲明的函數是從其他函數執行的,並且可能會傳遞一些值。

也可以使用其他參數調用函數的簽名,例如function doPost(e)

如:doPost(1,2,3,4,5,6,7,8);

,您可以在函數內部訪問所有的從arguments變量。

doPost(){ console.log(arguments); } 
0

通常e意味着像例如爲:

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

在這段代碼e將包含click事件引發的事件。


在你的代碼的代碼只是檢查誰調用這個doPost()。像doPost.apply(this, [e])


請記住,你可以調用doPost()沒有實際傳遞e運作,並不會引發任何錯誤。比typeof e裏面的函數將返回undefined

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,其通常得到傳遞給被指定爲一個事件監聽器的功能。

事件偵聽器通常由東西從程序外觸發,如用戶點擊鼠標按鈕,所以你很少會寫的分配值的代碼。

例如在網頁:

document.addEventListener("click", doPost); 

在這種情況下addEventListener是由瀏覽器供應商編寫一個函數(不是頁面作者)。它(或內置於瀏覽器的其他代碼)將調用doPost並傳遞值e,因此您永遠不會看到該代碼。你只要知道doPost將被用一個Event對象調用,如果用戶點擊。

相關問題