我有一个包含标签面板的portlet。在该面板中是一个图表。在图表的一个功能中,我执行console.log(this)
并能够查看所有内容。但是,我的主要目的是使用值this.ownerCt
,这表示它存在,但是当我尝试使用它或console.log时,它报告为未定义。如果我执行this.id
或this.idname
,我会获得实际的ID。
问题:如果this.SOMETHING
中有undefined
的值,为什么this
会返回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
会产生:{{1}}。
答案 0 :(得分:1)
<script>
var t1="";
var t2;
if (t1===undefined)
{
alert("t1 is undefined");
}
if (t2===undefined)
{
alert("t2 is undefined");
}
</script>
如果你运行t2未定义 可能 this.ownerCt 没有价值
答案 1 :(得分:0)
您可以找到答案here。似乎有时console.log()
调用被排队并最终在当前语句结束后调用,因此它们的输出不一定完全反映对象状态,就像它在代码中一样。
至少,当我在自定义ExtJS商店中覆盖构造函数时,我遇到了类似的行为。