我有以下功能:
function a() {
var d = {
foo : "text"
};
for(var b in c) {
if(c.hasOwnProperty(b)) {
d[b] = function() {
return c[b].apply(this, arguments);
};
}
}
return d;
}
var c = {
a : function() { alert(this.foo); },
b : function() { return this.a(); }
}
a().a(); // nothing happens
// but the following works :
var c = {
a : function() { alert(this.foo); }
}
a().a(); // output : text
this
我认为这是因为.apply
方法。我怎样才能解决这个问题?