1

我有一个包含选项卡式面板的 portlet。在那个面板中有一个图表。在图表的一个功能中,我做了一个console.log(this)并且能够查看所有内容。但是,我的主要意图是使用 value this.ownerCt,这表示它存在,但是当我尝试使用它或 console.log 它时,它报告为未定义。如果我做一个this.idthis.idname我得到实际的身份证。

问题:如果 in 有值,为什么会this.SOMETHING返回?undefinedthis

一些代码花絮:这里是console.log(this).

Ext.Class.newClass
  additionalCls: Array[2]
  body: Ext.Element.Ext.core.Element
  childEls: Array[1]
  collapseDirection: "top"
  componentCls: "x-panel"
  componentLayout: Ext.Class.newClass
  componentLayoutCounter: 3
  container: Ext.Element.Ext.core.Element
  dockedItems: Ext.Class.newClass
  el: Ext.Element.Ext.core.Element
  id: "stackedbarportlet-1055"
  itemId: "graph"
  items: Ext.Class.newClass
  ownerCt: Ext.Class.newClass
  xtype: "stackedbarportlet"

我取出了一些实例,但这是它的一般输出!

console.log(this.ownerCt)结果: undefined

4

2 回答 2

1
<script>

var t1="";
var t2;

if (t1===undefined)
{
alert("t1 is undefined");
}
if (t2===undefined)
{
alert("t2 is undefined");
}

</script>

如果您运行 t2 未定义,则this.ownerCt可能没有价值

于 2012-09-12T15:00:49.610 回答
0

你可以在这里找到你的答案。似乎有时console.log()调用会排队并最终在当前语句结束后调用,因此它们的输出不一定像在代码中那样准确地反映对象状态。

至少,当我在自定义 ExtJS 的商店中重写构造函数时,我遇到了类似的行为。

于 2012-10-02T14:16:29.830 回答