我不确定这个标题是否正确,但这就是我所拥有的......
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构造函数的实例“a”。我怎样才能做到这一点?我查看了Chrome调试器中的所有属性,我甚至不确定它是否可行。有人知道怎么做吗?我需要这样做,因为我需要访问存储在“a”中的变量。或者有更好的方法来做类似的事情吗?
答案 0 :(得分:1)
我不确定是否有办法只使用给你的属性来执行此操作,但是你总是可以将backref作为B
构造函数的参数之一:
A.prototype.B = function(backref) {
this.backref = backref;
}
var a = new A();
var b = new a.B(a);
丑陋,但确实有效。
答案 1 :(得分: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/