如何在javascript对象内部引用

时间:2015-10-27 17:53:42

标签: javascript object

我是新手,无法解决这个问题。我有这段简化的代码:

var StpTable = function () {

  function setupPager() {
    ...
    if(i<StpTable.a) {
      ...
    }
    ...
  };

  return {

    "a": 10,

    "init": function() {
      setupPager();
    }
  }

}();

如何使用setupPager()函数引用变量a,而不必使用变量名StpTable。试过这个。但是范围已经关闭了。

有什么建议吗?

2 个答案:

答案 0 :(得分:3)

在返回对象之前将对象分配给局部变量并使用它。

var StpTable = function () {

  function setupPager() {
    ...
    if(i<obj.a) {
      ...
    }
    ...
  };

  var obj = {

    "a": 10,

    "init": function() {
      setupPager();
    }
  };

  return obj;

}();

或者只是将函数指定为对象的属性:

var StpTable = function () {

  function setupPager() {
    ...
    if(i<this.a) {
      ...
    }
    ...
  };

  return {

    "a": 10,

    "init": setupPager,
  };

}();

然后this.a将起作用,假设使用StpTable.init();调用该函数。

答案 1 :(得分:0)

是的,a可以是本地变量

var StpTable = function () {
  var a = 10;
  function setupPager() {
    ...
    if(i<a) {
      ...
    }
    ...
  };

  return {

    "a": a,

    "init": function() {
      setupPager();
    }
  }

}();