2013-12-18 52 views
1

我不知道如果标题这样做正义,但这里是我...获取实例化构造函数的调用对象?

function A() {}; 

A.prototype.B = function(){ 
    this.backref = //?? -- should be set to "a" 
}; 

var a = new A(); // specialized factory... 

var b = new a.B(); // instantiate an "a" specialized version of B 
var zztop = b.backref instanceof A; //would be true 

我需要backref分配到实例“一”即所谓的B构造。我怎样才能做到这一点?我已经浏览了Chrome调试器中的所有属性,我甚至不确定它是可能的。有人知道怎么做吗?我需要这样做,因为我需要访问存储在“a”中的变量。或者有更好的方法来做类似的事情吗?

回答

1

我不知道是否有办法做到这一点只用给你的属性,但你总是可以使backref的参数传递给B构造一个:

A.prototype.B = function(backref) { 
    this.backref = backref; 
} 

var a = new A(); 
var b = new a.B(a); 

丑陋,但有用。

+0

我不想这样做,因为它会令我有,当我初始化的对象种类较多,大声笑。 – extracrispy

0

您所描述的内容称为继承。你想对象B继承对象A.

function A() { 
    this.length = 3; 
} 

function B() { 
    this.height = 5; 
} 

B.prototype = new A(); 
B.prototype.constructor = B; 

var obj = new B(); 

obj.height; // returns 5 
obj.length; // returns 3 

的属性这里有一个的jsfiddle:http://jsfiddle.net/d6QeT/

相关问题