オブジェクトの配列を持つオブジェクトを作成しようとしています。例: 複数のヘッダーを持つ Page オブジェクトを作成したいと思います。addHeader() および getHeaders() メソッドが必要です。ヘッダー自体は、いくつかのプロパティ (name や id など) を持つオブジェクトです。ページオブジェクトの一部としてネストし、ヘッダーの配列に追加しようとしました(これはページの一部であると想定していましたが、それは理想的な解決策ではない可能性があります)。内部関数を実行しようとすると問題が発生します。私はこの質問を読んで、このトピックに似たものはほとんどありませんが、残念ながら解決策を思いつくことができません:
javascript でクラスベースのオブジェクトを持つ方法はありませんか?
私の最新の試み:
var Page = ( function () {
function Page() {
var headers = [];
var header = {
name:'',
id:'',
addHeader : function(name,id) {
this.name = name;
this.id = id;
Page.headers.push(header);
}
};
this.getHeaders = function() {
for(var i=0; i< Page.headers.length; i++) {
console.log(Page.headers[i]);
}
}
}
return Page;
}) ();
getHeaders を実行しようとしているとき:
var p = new Page(); p.getHeaders();
私は得る:
p.getHeaders is not a function
私の JavaScript スキルはかなり基本的なものです。ヘルプやコメントをいただければ幸いです。回答ありがとうございます。
内部の addHeader 関数にアクセスする方法を誰かに説明してもらえますか? これは、javascript オブジェクトで関数をネストする正しい方法ですか?