「这个」在 JavaScript 中,通过另一个属性访问对象的属性时,对象内部未定义
Type= {
Container: $get('ctl00_Main_rbtnlst_Type'),
Local: this.Container.getElementsByTagName('input'),
Foreign:this.Container.getElementsByTagName('input')
}
当我在 firebug 控制台中运行此代码时,我收到错误“this.Container”未定义,即使它已定义。我还能如何访问本地和外国属性内的容器属性。我什至尝试过这个。
Type= {
Container: $get('ctl00_Main_rbtnlst_Type'),
Local: Container.getElementsByTagName('input'),
Foreign:Container.getElementsByTagName('input')
}
Type= {
Container: $get('ctl00_Main_rbtnlst_Type'),
Local: this.Container.getElementsByTagName('input'),
Foreign:this.Container.getElementsByTagName('input')
}
when i ran through this code inside firebug console i get error 'this.Container' is undefined even though it is defined. How else can i access the Container property inside the Local and Foreign property. I even tried this.
Type= {
Container: $get('ctl00_Main_rbtnlst_Type'),
Local: Container.getElementsByTagName('input'),
Foreign:Container.getElementsByTagName('input')
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
实例化时无法获取
this
。您可以执行以下操作:稍后使用
Type.Local()/Type.Foreign()
获取本地或外部,或者如果您在实例中需要本地/外部,则使用此冗余模式:
或使用立即执行的方法函数:
为了完整起见,您还可以使用一些
getter
,但这不适用于所有浏览器(尤其是 IE<9)注意:
本地
和国外
都是一样的,是你想要的吗?You can't get
this
while instantiating. You can do:And later on get Local or Foreign using
Type.Local()/Type.Foreign()
or use this reduntant pattern if you need Local/Foreign within the instance:
Or use this immediately executed function:
and to be complete, you can also use a few
getters
, but that won't work in all browsers (especially not in IE<9)note:
Local
andForeign
are the same, is that what you intended?你可以这样做:
但你可能想要的是这样的:
You can do this:
But what you probably want is this: