Я пытаюсь назначить объект прототипу, но я продолжаю получать ошибку, что объект не определен. Я пытаюсь сделать этоНазначение объекта прототипу
//x.prototype.y = {};
StreetEasy.prototype.neighborhoodPaths = {};
и на более позднем этапе в коде я пытаюсь получить доступ к этому объекту в другой функции прототипа и нажмите на новых данных с
//x.prototype.assignData = function(z, a){
// this.y[z] = a;
//}
StreetEasy.prototype.findNeighborhoodPath = function(areaQuery, callback){
var data = {q: areaQuery, key: this.apiKey, format: this.format};
var query = qs.stringify(data);
var url = AreaSearchUrl + '?' + query;
var areaQ = areaQuery.toLowerCase();
if (this.neighborhoodPaths[areaQ]) {
callback(this.neighborhoodPaths[areaQ].path);
} else {
http.get(url, function(response){
response.setEncoding('utf8');
response.on('data', function (rData){
rData = JSON.parse(rData);
callback(rData);
rData.areas.every(function(element){
-----------error is here-> this.neighborhoodPaths[element.name.toLowerCase()].path = element.path;
});
}).on('error', function(e){
console.error('ERROR: ' + e.message + ' | ' + e.statusCode);
});
});
}
};
узел продолжает возвращаться
TypeError: Невозможно прочитать свойство z неопределенного. Что я делаю не так?
Редактировать больше кода:
StreetEasy.prototype.neighborhoodPaths = {};
StreetEasy.prototype.findNeighborhoodPath = function(areaQuery, callback){
var data = {q: areaQuery, key: this.apiKey, format: this.format};
var query = qs.stringify(data);
var url = AreaSearchUrl + '?' + query;
var areaQ = areaQuery.toLowerCase();
if (this.neighborhoodPaths[areaQ]) {
callback(this.neighborhoodPaths[areaQ].path);
} else {
http.get(url, function(response){
response.setEncoding('utf8');
response.on('data', function (rData){
rData = JSON.parse(rData);
callback(rData);
rData.areas.every(function(element){
-----------error is here-> this.neighborhoodPaths[element.name.toLowerCase()].path = element.path;
});
}).on('error', function(e){
console.error('ERROR: ' + e.message + ' | ' + e.statusCode);
});
});
}
};
Я не мог» t воспроизвести проблему. Пожалуйста, покажите фактический код. – thefourtheye
Что такое переменная 'x'? – jfriend00
Возможно, x не является функцией или вы передаете assignData как обработчик обратного вызова/события. Как использовать прототип и значение этого объясняется здесь: http://stackoverflow.com/a/16063711/1641941 вы можете попробовать несколько консольных журналов, чтобы увидеть больше результатов (например, console.log (this)) – HMR