我在编写的大量代码中遇到了一些麻烦,我将其归结为:
var Thing = function(argument){
this.property = argument;
this.obj = {
func: function(){
return this;
}
};
this.func = function(){
return this;
};
};
我需要访问this.property
里面obj.func()
。然而, 的价值this
并不是我所期望的:
> var thing = new Thing("value")
> thing.func()
Thing {property: "value", obj: Object, func: function}
> thing.obj.func()
Object {func: function}
当我实例化一个名为“thing”的实例并调用时thing.func()
,它应该this
保存 的当前实例。Thing
但是当我调用时thing.obj.func()
,它的值是thing.obj
。这是怎么回事?我如何访问该值?