从嵌套函数中访问函数对象的值

时间:2014-04-19 19:30:09

标签: javascript

假设我们有函数test()

function test(){
    a();

    this.b = function(){
        alert(1);
    }

    function a(){
        this.b();
    }
}

var t = new test();

此代码将抛出 TypeError:this.b不是函数

问题是,我们如何才能在b()内正确访问a()

2 个答案:

答案 0 :(得分:2)

更改顺序:

function test(){
    var me = this;
    this.b = function(){
        alert(1);
    }

    a();

    function a(){
        me.b();
    }
}

在分配变量之前,您无法致电this.b()。并且您需要使用局部变量来捕获闭包中的this值。

答案 1 :(得分:0)

function test(){
  var me = this;

  this.b = function () {
    console.log(1);
  }

  function a() {
    console.log('calling me.b()');
    me.b();
  }

  a();
}

var t = new test();
console.log('calling t.b()');
t.b();