1. ホーム
  2. javascript

[解決済み] Javascriptの構造体

2022-03-03 19:13:17

質問

以前は、関連する多くの変数を格納する必要がある場合、クラスを作成していました。

function Item(id, speaker, country) {
  this.id = id;
  this.speaker = speaker;
  this.country = country;
}
var myItems = [new Item(1, 'john', 'au'), new Item(2, 'mary', 'us')];

しかし、これが良い方法なのかどうか、疑問に思っています。他にあるのでしょうか。 より良い JavaScript で構造体をシミュレートする方法はありますか?

どのように解決するのですか?

オブジェクト・リテラルと構築済みオブジェクトの違いは、プロトタイプから継承されるプロパティのみです。

var o = {
  'a': 3, 'b': 4,
  'doStuff': function() {
    alert(this.a + this.b);
  }
};
o.doStuff(); // displays: 7


構造体ファクトリーを作ればいいんだよ。

function makeStruct(names) {
  var names = names.split(' ');
  var count = names.length;
  function constructor() {
    for (var i = 0; i < count; i++) {
      this[names[i]] = arguments[i];
    }
  }
  return constructor;
}

var Item = makeStruct("id speaker country");
var row = new Item(1, 'john', 'au');
alert(row.speaker); // displays: john