jsonファイルでインスタンス化することができるコンストラクタを作成したいと思います。最後にその結果をプロトタイプのパブリック関数に渡すいくつかのプライベート関数によって使用されます。これは正しいアプローチですか?Javascript OOPプライベート関数
ここで、より具体的なコード:
//constructor
function queryArray(json){
this.json = json;
//init qry template with default values
function qryInit() {
var qryTemplate = {
//some stuff
}
return qryTemplate;
}
//generate array of request templates
function qryTempArray(json){
var template = qryInit();
var qryTempArray1 = [];
for(var i = 0; i < json.length; i++){
qryTempArray1.push({
'SearchIndex': json[i].SearchIndex,
'Title': json[i].Title,
'Keywords': json[i].Keywords,
'MinimumPrice': json[i].MinimumPrice,
'MaximumPrice': json[i].MaximumPrice,
'ResponseGroup': template.ResponseGroup,
'sort': template.sort
});
}
return qryTempArray1;
}
}
//function for finally building all the queries
queryArray.prototype.qryBuilder = function(){
var qryTempArray1 = [];
qryTempArray1 = qryTempArray(this.json);
//other stuff
}
私は、オブジェクト上qryBuilder関数を呼び出す場合、私は、forループ(未定義)でjson.lengthでの関数qryTempArrayにエラー を取得します。 なぜですか?
あなたは依存性注入を達成しようとしていますか? –
あなたは中かっこを閉じていませんでした。コードを編集します – RomanPerekhrest
'query'は単一の* r *で綴られていますが、コンストラクタの名前は大文字にする必要があります。インスタンスは小文字でなければならず、閉じ括弧がなく、インデントを改善できます。 – Bergi