【问题标题】:How to extract data from this object?如何从这个对象中提取数据?
【发布时间】:2015-06-21 15:36:24
【问题描述】:

我正在为我的工作场所编写一些遗留代码,但无法弄清楚如何处理返回的数据对象中的数据。 retrieveThis 函数应该检索对象数据:

myObj.retrieveThis(new myObj.getThisData({num : 10, page : 1, sorting : "stampDescending"}), function () {myCallback(this);});
var myObj = function () {
    var getThisData = {
        // this function populates an array and returns it to the retrieveThis function
    }
    var theObject = {
        retrieveThis: function(a, b) {
            var OBJ = {};
            // OBJ is populated by the data from var getThisData...I checked
            setTimeout(function () {
                b(OBJ);
            }, 1000);
        }
    }
    return theObject;
})();

我无法将数据(“theObject”)传递给我的回调函数(或根本没有)。我将this 传递给myCallback(),其中myCallback 是:

function myCallback(obj) {
    alert(Object.keys(obj));
}

警告框显示包括documentjQuerymyObj 在内的密钥列表。看起来来自 OBJ 的数据是从数组 allTheData 中填充的,但我似乎无法将其传回(作为 return theObject;)来处理它。我在哪里错了?

注意 - 我无法修改此旧代码。我需要处理“theObject”。

【问题讨论】:

  • 你是如何传递这个的?
  • 我把它作为参数传递给我的回调
  • 似乎您提供了一个不正确的示例:您使用myObj.getThisData 作为构造函数,但在您看来myObj 不是这个属性,而且您只有本地对象getThisData

标签: javascript object-oriented-analysis


【解决方案1】:

你传递了错误的回调函数

里面你用参数调用它,所以你应该用参数定义它

myObj.retrieveThis(
    new myObj.getThisData({num : 10, page : 1, sorting : "stampDescending"}),
    myCallback);

在这种情况下,myCallback 的第一个参数传递给OBJ 对象

【讨论】:

  • 是的,它做到了。最佳答案
  • 我认为我可以在回调中将其作为参数传递
  • 在你的情况下 - this 指的是全局对象 window
猜你喜欢
  • 2013-02-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-18
相关资源
最近更新 更多