Javascript 如何从属性函数引用上面的对象
我想将函数(f)定义为对象(o)的属性。 在这个函数中,我想引用的不是函数(f)的一个属性,而是(o)上面的对象。 在这种情况下,我不能使用Javascript 如何从属性函数引用上面的对象,javascript,oop,this,Javascript,Oop,This,我想将函数(f)定义为对象(o)的属性。 在这个函数中,我想引用的不是函数(f)的一个属性,而是(o)上面的对象。 在这种情况下,我不能使用this,因为它指的是函数(f) 由于这是合乎逻辑的,此代码段中的尝试获取函数(f)的t属性。 我现在如何访问o.t 更新: 这个片段: var o = { t : 0, f : new function(){ return o.t; } } 由于在声明此属性(f)时对象(o)尚未定义,因此两者都不起作用(逻辑上)请删除单词
this
,因为它指的是函数(f)
由于这是合乎逻辑的,此代码段中的
尝试获取函数(f)的t属性。
我现在如何访问o.t
更新:
这个片段:
var o = {
t : 0,
f : new function(){
return o.t;
}
}
由于在声明此属性(f)时对象(o)尚未定义,因此两者都不起作用(逻辑上)请删除单词
new
:
var o = {
t : 0,
f : function() {
return this.t;
}
}
删除单词
new
:
var o = {
t : 0,
f : function() {
return this.t;
}
}
删除单词
new
:
var o = {
t : 0,
f : function() {
return this.t;
}
}
删除单词
new
:
var o = {
t : 0,
f : function() {
return this.t;
}
}
在用调用的函数中,
此
将引用新创建的对象。另外,构造函数不应该返回任何东西,或者如果返回,返回值应该是一个对象。这是因为JS是“实例敏感”的吗?为什么function()
本身不创建新实例?因为它是函数,而不是对象。使用new
调用任何函数都会返回该函数的实例。基本上,this.t
没有在匿名函数中定义,因此返回值被忽略,只返回this
。在调用的函数中,this
将引用新创建的对象。另外,构造函数不应该返回任何东西,或者如果返回,返回值应该是一个对象。这是因为JS是“实例敏感”的吗?为什么function()
本身不创建新实例?因为它是函数,而不是对象。使用new
调用任何函数都会返回该函数的实例。基本上,this.t
没有在匿名函数中定义,因此返回值被忽略,只返回this
。在调用的函数中,this
将引用新创建的对象。另外,构造函数不应该返回任何东西,或者如果返回,返回值应该是一个对象。这是因为JS是“实例敏感”的吗?为什么function()
本身不创建新实例?因为它是函数,而不是对象。使用new
调用任何函数都会返回该函数的实例。基本上,this.t
没有在匿名函数中定义,因此返回值被忽略,只返回this
。在调用的函数中,this
将引用新创建的对象。另外,构造函数不应该返回任何东西,或者如果返回,返回值应该是一个对象。这是因为JS是“实例敏感”的吗?为什么function()
本身不创建新实例?因为它是函数,而不是对象。使用new
调用任何函数都会返回该函数的实例。基本上,this.t
不是在匿名函数中定义的,因此返回值被忽略,只返回this
。如果我决定使用函数(f)的新实例,请您扩展一下您的答案,并解释一下它是什么,或者不可能以某种方式引用上面的内容使用new
?Teemu在上面的评论回答得比我的回答要好。如果我决定使用函数(f)的新实例,请您扩展一下您的答案,并解释一下它是什么,或者以某种方式无法参考上面的内容使用new
?Teemu在上面的评论回答得比我的回答要好。如果我决定使用函数(f)的新实例,请您扩展一下您的答案,并解释一下它是什么,或者以某种方式无法参考上面的内容使用new
?Teemu上面的评论回答得比我好。请您扩展一下您的回答,解释一下它是什么,或者如果我决定使用new
,函数(f)的新实例,则无法以某种方式引用上面的内容。Teemu上面的评论回答得比我更好。