2016-10-12 2 views
0

私はこれに複数の変数を割り当てる必要があるクラスを持っています。 (より少ないコードで)よりよい方法は、このような何かに取り組むためにそこにある:クラスの `this`に複数の値をすばやく割り当てる

class Foo { 
    constructor(firstName, lastName, age) { 
    const fullName = firstName + lastName; 
    const age = age * 5; 

    this.fullName = fullName; 
    this.age = age; 
    } 
} 

(以下、完全なケースを参照してください私はthis.fullNameconst fullNameを置き換えることができます知っているが、ロジックのより大きな部分を行うに持ったときには、非常に厄介になっています)

Object.assign({}, this, {fullName, age})を使ってみましたが、大したことはありませんでした。

全ケース:

class AudioPlayer { 
    static init() { 
    const audio = new Audio(); 
    audio.loop = true; 
    audio.autoplay = true; 

    const audioFiles = { 
     slow: 'mp3/slow.mp3', 
     medium: 'mp3/medium.mp3', 
     fast: 'mp3/fast.mp3' 
    }; 

    audio.src = audioFiles.medium; 

    const audioContext = new (window.AudioContext || window.webkitAudioContext)(); 

    const audioAnalyser = audioContext.createAnalyser(); 
    audioAnalyser.fftSize = 1024; 

    const audioSource = audioContext.createMediaElementSource(audio); 
    audioSource.connect(audioAnalyser); 
    audioAnalyser.connect(audioContext.destination); 

    const bufferLength = audioAnalyser.frequencyBinCount; 

    this.audio = audio; 
    this.audioFiles = audioFiles; 
    this.audioContext = audioContext; 
    this.audioAnalyser = audioAnalyser; 
    this.audioSource = audioSource; 
    this.bufferLength = bufferLength; 
    } 
} 

+0

'static init'?あれは何でしょう?コンストラクタがない場合は 'class'構文を使用しないでください。 – Bergi

答えて

0

Object.assign()動作するはずです。最初の引数をスキップするだけで、他のすべての値はthisにマージされます。

Object.assign(this, {fullName, age}) 
+0

もちろん!データは、返された空のオブジェクトにマージされていました。ありがとう! – Rijk

関連する問題