2016-07-27 7 views
1

私はannotated source for the Parsley javascript libraryを読んでいます。私は完全に理解していない表記を続けています。 Google検索は有用な検索用語として "()=>"または "=>"を無視しているため、実際には役に立たない。Javascript notation:()=> {return 5; }

はここに例を示します

if (event) { 
     this.submitEvent = $.extend({}, event, {preventDefault:() => { 
     ParsleyUtils.warnOnce("Using `this.submitEvent.preventDefault()` is deprecated; instead, call `this.validationResult = false`"); 
     this.validationResult = false; 
     }}); 
    } 

私は何が起こっているかを推測することができますが、私は、構文や関数/ラムダ宣言またはパターンの名前を理解していません。

関数宣言のパターンまたはスタイルの名前は何ですか?その目的は何ですか?

+0

「=>のjavascript」のためにStackOverflowを検索する場合、何も結果が答えにマッチしていない「矢印関数の構文」 –

+0

と呼ばれています。地獄先週、私は、「約束したときに」jQueryの遅延関数呼び出しを学習しようとしましたが、何も見つけられませんでした。 – Kieveli

+0

'' jquery deferred''や 'jquery deferred then'や' jquery promise then? '' promise'は非常に一般的です... – nils

答えて

4

これらは、基本的に若干新しい方法で機能を活用するためのES6アプローチであるarrow functionsと呼ばれています。短い機能と、この字句:起こっていただきました上でいくつかの簡単な背景については、MDN

二つの要因は、矢印機能の導入に影響を与え、そのような

ような考え方を説明しています。矢印構文で

この例をチェックアウト...

var self = this; 
setInterval(function growUp() { 
    // The callback refers to the `self` variable of which 
    // the value is the expected object. 
    self.age++; 
}, 1000); 

// `this` here is the same as `this` in the setInterval 
setInterval(() => { 
    this.age++; // `this` properly refers to this in the outer scope 
}, 1000); 

になるようにあなたの例で、 "伝統的な" 表現は、このような...

のようになり
var self = this; 
if (event) { 
    self.submitEvent = $.extend({}, event, { preventDefault: function() { 
    // [...] 
    self.validationResult = false; 
    }}); 
} 

矢印機能のもう1つの大きな用途は、1つのli ners

[1,2,3,4].map(num => num * 2); // [2,4,6,8] 
関連する問題