2016-07-03 2 views
-1

に変換しています。新しいnoobish質問で私はもう一度です。私はNodeJS変数に以下の祝福がありますJavaScript /ノードを変数にクラス

var box = blessed.box({ 
    width: '100%', 
    height: 1, 
    content: someContent, 
    tags: true, 
    style: { 
    fg: 'white', 
    bg: 'magenta', 
    hover: { 
     bg: 'green' 
    } 
    } 
}); 

私はこれらの複数を作成することになり、各1宣言する最適ではないでしょうので、私はクラスが完璧になると思います。私を混乱させるのは、祝福されたボックスのことです。私はそれをクラスに実装する方法を知らない。

上記のパラメータを使用して再利用可能なクラスを作成するにはどうすればよいですか?ありがとう。

EDIT:

さて、私は上記の変数を再利用する方法を考え出した - それだけの機能でそれを追加するだけです:

function createBox (content, top) { 
    var box = blessed.box({ 
    width: '100%', 
    height: 1, 
    top: top, 
    content: content, 
    tags: true, 
    style: { 
     fg: 'white', 
     bg: 'magenta', 
     hover: { 
     bg: 'green' 
     } 
    } 
    }); 
    screen.append(box); 

    box.on('click', function(data) { 
    box.setContent('{center}Some different {red-fg}content{/red-fg}.{/center}'); 
    screen.render(); 
    }); 
}; 

この関数は、その後、何回でも呼び出すことができます:

createBox('someContent', 1); 
createBox('someContent', 2); 

ご迷惑をかけてからご検討ください。簡単になった

+0

質問を明確にしてください。 –

答えて

1

私は100%あなたの質問を理解していません。上記のクラス構文を実装する方法を知りたいと思うように感じます。いずれにしてもes15の文法的な砂糖です。お役に立てれば。私は渡されたオプションにスプレッド演算子を使用しています。

class Blessed { 
    constructor(...options) { 
     this.width = options.width; 
     //... the rest of your properties here 
    } 
} 

const box = new Blessed({ 
    width: '100%', 
    height: 1, 
    content: someContent, 
    tags: true, 
    style: { 
     fg: 'white', 
     bg: 'magenta', 
     hover: { 
      bg: 'green' 
     } 
    } 
}); 
+0

不明確な説明をおかけして申し訳ありません。私は5回宣言するのではなく、可変コードを(例えば5つのボックスのために)再利用する方法を見つけようとしていました。私はちょうど私が尋ねた直後に私の編集でそれを理解した:/ – Neekoy

+0

ああ私が参照してください。がんばろう!関数をラップし、オブジェクトとしてボックスを返すこともできます。したがって、Blessed関数は、親関数スコープを持たずにBlessed.boxと同じ効果を得ることを意味するオブジェクトとして返されます。 –

+0

例:https://jsfiddle.net/ositoozy/h37n6jym/ –

関連する問題