2017-01-11 12 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手段がイベントをクリックしてください含まれています。


あなたのコードコードでは、誰がこれをdoPost()と呼びますかをチェックしてください。 doPost.apply(this, [e])


のように、あなたが実際に機能するeを渡さずdoPost()を呼び出すことができます覚えておいて、それはすべてのエラーをスローしません。 typeof e内部関数が返されるundefined

2

関数の引数は、と呼び出されたときに値に割り当てられます。この例では

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

は、次の2つの異なる変数を定義するには、両方ともeと呼ばれます。 1つは関数の外にあり、値は"something"です。もう1つは関数の内部にあり、その関数がの場合はとなります。あなたが提供したコードサンプルは、関数を呼び出すことはありません(またはそれ以外の何かを行う)ので、その値が何であるかを伝える方法はありません。

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保持するために使用伝統的、です。

イベントリスナーは通常、ユーザーがマウスボタンをクリックしたときのように、のようなプログラムの外にあるによってトリガーされるため、値を割り当てるコードを書くことはまれです。

Webページに:この場合addEventListener

document.addEventListener("click", doPost); 

(いないページの作者による)ブラウザベンダーによって書かれた機能です。それ(またはブラウザに組み込まれている他のコード)はを呼び出し、eの値を渡すので、そのコードは決して見えません。ユーザーがクリックした場合は、doPostがEventオブジェクトとともに呼び出されることがわかります。

関連する問題