2016-12-01 11 views
0

私はmo.jsのチュートリアルに従い、サークルのクリックバースト部分に取り組んでいます。Mo.jsの代わりにオブジェクトスプレッドの構文

const OPTS = { 
    fill:   'none', 
    radius:   25, 
    strokeWidth: { 50 : 0 }, 
    scale:   { 0: 1 }, 
    angle:   { 'rand(-35, -70)': 0 }, 
    duration:  500, 
    left: 0,  top: 0, 
    easing: 'cubic.out' 
}; 

const circle1 = new mojs.Shape({ 
    ...OPTS, 
    stroke:   'cyan', 
}); 

const circle2 = new mojs.Shape({ 
    ...OPTS, 
    radius:   { 0 : 15 }, 
    strokeWidth: { 30: 0 }, 
    stroke:   'magenta', 
    delay:   'rand(75, 150)' 
}); 

私はトラブル...構文をサポートをしているVSCode V 1.7.2を使用しています。私はまた、Chrome 54.0.2840.99でコンソールエラーを取得しています。この問題を回避するのに使用できる同等の形式はありますか?私はoptions: OPTSのようなものはうまくいくと想像していますが、私はドキュメンテーションやインターネット上で何かを見たことがありません。

明らかに、円の宣言でOPTSのプロパティを複製することはできますが、簡単にするためにOPTS変数を使用する方法を知りたいと思います。

私はmo.jsというタグを付けますが、新しいタグを作成するには十分な評判がありません。

ありがとうございます!

答えて

3

代わりObject.assign()を使用することができます。

const circle2 = new mojs.Shape(Object.assign({}, OPTS, { 
    radius:   { 0 : 15 }, 
    strokeWidth: { 30: 0 }, 
    stroke:   'magenta', 
    delay:   'rand(75, 150)' 
})); 

オブジェクトのスプレッドは、まだ提案され、そしてリンターは、構文を認識しません。それは動作しないことを意味しません。たとえば、stage 3 preset(または0,1,2プリセット)のベベルを使用している場合、vscodeに警告が表示されていても動作します。私はvscodeに慣れていませんが、おそらくこの機能のサポートを追加することができます。

+0

ご注文が間違っています。 'OPTS'は最初に同じ機能を保持すべきですが、' OPTS'を修正するのを避けるために空白の '{}'が必要です。 – mpen

+1

ありがとうございます。オーバーライドについて考えなかった。 –

関連する問題