在函数内调用对象的方法

时间:2017-01-09 11:59:37

标签: javascript object

我知道如何从一个对象调用一个方法,即如果调用myObj.objMethod则会返回以下内容。

myObj = {
  objProperty: 'string',
  objMethod: function() {
    return this.objProperty
  }
}

但是,我正在尝试following code wars exercise并且无法弄清楚需要做什么。看起来他们希望在自身内部调用函数。为此,我尝试使用arguments.callee.call(MyObject.objMethod())但是,正如预期的那样,它超过了最大调用堆栈。有没有人知道是否可以从该函数中调用函数对象的方法?

以下是我的尝试之一(<之一):

function myFunction() {

  var MyObject = {
    objProperty: "string",
    objMethod: function() {
      return this.objProperty;
    }
  }

  return arguments.callee.call(MyObject.objMethod());

};

以下是代码大战说明:

  

属性objMethod应该由myFunction调用。

     

你能修复语法,以便myFunction再次运行吗?请   检查大括号,逗号和字母大小写。

这是提供的原始代码:

function myFunction() {
  var MyObject = {
    objProperty: "string",
    objMethod: function() {
      return myObject.objProperty;
        }
  }

  return myObject.Objmethod();
};

2 个答案:

答案 0 :(得分:2)

这是您的解决方案

function myFunction() {
  var MyObject = {
    objProperty: "string",
    objMethod: function() {
      return MyObject.objProperty;
    }
  }

  return MyObject;
};

问题陈述是

  

属性objMethod应该由myFunction调用。

它通过了所有测试。

答案 1 :(得分:0)

确保查看测试及其预期结果。期望测试能够引用对象,而不是一个特定的属性。

return MyObject;