我怎样才能访问祖父母“这个”?
function F(){}
F.prototype.foo = 5;
F.prototype.getFoo = function(){ return this.foo; };
F.prototype.container.getFoo = function(){
/* What goes here to return 5? */
};
我怎样才能访问祖父母“这个”?
function F(){}
F.prototype.foo = 5;
F.prototype.getFoo = function(){ return this.foo; };
F.prototype.container.getFoo = function(){
/* What goes here to return 5? */
};
function F = function(){}
F.prototype.foo = 5;
F.prototype.getFoo = function(){ return this.foo; };
F.prototype.container = {
getFoo: function(){
/* What goes here to return 5? */
}
};
var f = new F;
f.getFoo(); // 5, as it should be.
f.container.getFoo(); // how do i make this 5?
在上面的代码中,f.container
与 的原型没有可访问的关系f
——它不是由它构造的,它只是一个挂在F.prototype
你唯一能做的就是传入一个新的范围,或者改变它执行的范围,如下所示:
F.prototype.container = {
getFoo: function(newscope){
return newscope.foo;
}
};
//instantiate f as an instance of F...
f.container.getFoo(f);
或者
F.prototype.container = {
getFoo: function(){
return this.foo;
}
};
//instantiate f as an instance of F...
f.container.getFoo.apply(f);
我主张你不要使用这些解决方案,而是在谷歌周围搜索一些关于 JavaScript 中的命名空间和原型继承的信息。