[英]Accessing property of parent in nested object
我正在重构一些JS代码,需要访问像
Object1.Object2.IsValid();
这就是我现在所拥有的。
function _Object1(object) {
this._object1 = object;
this.Object2= new _Object2();
function IsValid() {
// tests here
}
}
function _Object2()
{
function IsValid() {
// tests here but needs to use Object1 property above.
}
}
唯一的问题是,我不知道如何在不传递任何参数的情况下访问Object2中的Object1。 或许在Object1中嵌套Object2?
编辑:我想在JS中实现OOP,就像重新发明轮子一样,但是现在想尝试一下:)
我将用OOP来解释这个问题:
我有一个类_Object1
,它有一个方法IsValid()
。 _Object1
还有一个属性Object2
,其类型为_Object2
。
现在, _Object2
还有一个名为IsValid()
方法。 但是这里有一个catch, _Object2.IsValid
需要_Object2.IsValid
的值_Object1
进行测试。
对于上面的代码,如果我这样做:
var Object1 = new _Object1();
我可以简单地为结果调用Object1.Object2.IsValid()
。 不是吗?
免责声明:我现在一直在使用JS,但从来不必涉及这些事情。
给_Object2
它需要的东西:
function _Object1(object) {
this._object1 = object;
this.Object2= new _Object2(this);
function IsValid() {
// tests here
}
}
function _Object2(parentObject)
{
function IsValid() {
// parentObject refers to the _Object1 that created this object
}
}
我认为你要找的东西是不可能的,除非你愿意将数据传递给对象。
只是因为_Object2
实例是在_Object1
构造函数中创建的,它不会自动引用_Object1
实例的数据。 您必须在构造函数或通过其他方法告诉_Object2
实例有关_Object1
值:
function _Object2(parentObject) { /* ... */ }
// or
_Object2.prototype.setParent = function(parent) { /* ... */}
// or
myObject2.parent = this._object1;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.