2016-08-07 4 views
2

は:オブジェクトリテラルプロパティ値速記

function FF(constructorArg) { 
    var _privateName = constructorArg; 

    var publicMessage = "Hello StackOverflow"; 

    function publicMethodGetName() { 
     return _privateName; 
    } 

    return { 
     publicMethodGetName: publicMethodGetName, 
     publicMessage: publicMessage 
    }; 
} 

をしかし、私はちょうど私が次への復帰を簡素化することができますことに気付きました:

return { publicMethodGetName, publicMessage }; 

それでも機能します。

この単純な構文を使用すると意図しない副作用がありますか、それともうまく使用できますか?

+1

これは、古いJSエンジン(古いブラウザなど)ではネイティブに動作しないES6です。 https://ariya.io/2013/02/es6-and-object-literal-property-value-shorthandをご覧ください。 – Phil

答えて

2

これは、ECMAScript2015(a.k.a.ES.a6)によって導入されたオブジェクトリテラルプロパティを定義する簡潔な構文です。唯一起こりうる問題は環境支援です。環境はこの機能をサポートする必要があります。

ES5ベースの環境をサポートするには、ES6トランスパイラを使用してコードをES5に変換します。