我有一些看起来像这样的代码

var viewService = function () {
   ...
   return {
      ...
      ,isAbsolute: function (view) { ... }
      ...
      ,removeAbsoluteViews: function () { ... }
      }
   };
};


我想做的是从isAbsolute调用removeAbsoluteViews。当我尝试这样做

if (isAbsolute(v) === false) { ... }


我收到一条错误消息,提示未定义isAbsolute。我怎样才能做到这一点?

最佳答案

由于返回对象,因此可以使用this关键字:

if (this.isAbsolute(v) === false) { ... }


您也可以这样声明(不使用this关键字):

var viewService = function () {

  function isAbsolute (view) { ... }

  function removeAbsoluteViews () {
    if (isAbsolute(v) === false) { ... }
  }

  ...

  return {
    isAbsolute: isAbsolute,
    removeAbsoluteViews: removeAbsoluteViews
  };
};

关于javascript - 调用“同级”功能,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24079924/

10-09 04:52