Javascript从其他公共方法(同一个Object)中访问公共方法

时间:2016-08-20 10:32:10

标签: javascript object methods

我有以下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。

有没有办法解决这个问题?

3 个答案:

答案 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())