我有以下JS-Object:
var obj = function(){
this.var1 = "var1";
this.getvar1 = function(){
return this.var1;
}
this.call1 = function(){
this.getvar1();
}
}
问题:
如果我尝试从obj-Object的另一个公共方法内部调用obj-Object的公共方法,则“this”关键字引用公共方法本身而不是Object。
有没有办法解决这个问题?
答案 0 :(得分:0)
你忘了从call1
回来。添加return
,它将按预期工作:
var obj = function() {
this.var1 = "var1";
this.getvar1 = function() {
return this.var1;
}
this.call1 = function() {
return this.getvar1();
}
}
var a = new obj()
console.log( a.call1() )
答案 1 :(得分:0)
您可以将this
分配给变量(self
)并使用:
var obj = function(){
var self = this;
self.var1 = "var1";
self.getvar1 = function(){
return self.var1;
}
self.call1 = function(){
self.getvar1();
}
}
答案 2 :(得分:0)
也许你的意思是:
const obj = {
var1: 'var1'
,getvar1() {
return this.var1
}
,call1() {
return this.getvar1()
}
}
console.log(obj.call1())