将对象分配给原型

时间:2015-05-10 07:22:40

标签: javascript node.js prototype

我正在尝试将一个对象分配给一个原型,但我一直收到一个错误,该对象未定义。我正在努力做到这一点

//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:无法读取undefined的属性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 );
      });
    });
  }
};

0 个答案:

没有答案
相关问题