2017-01-09 5 views
1

Я знаю, как вызвать метод из объекта, то есть следующее, если 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(); 
}; 
+0

'вернуть MyObject.objMethod();' –

+0

@ MirkoVukušić я попробовал, что, во-первых, но не работает –

+0

В связанном примере вы имеете случаев неправильно. Вы написали 'return myObject.Objmethod();' ... отметить неправильный корпус –

ответ

2

Это ваше решении

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

    return MyObject; 
}; 

Постановка задачи

Property objMethod следует называть MYFUNCTION.

Проходит все испытания.

+0

да, вот и все! хорошо, думаю, я неправильно понял, что они искали немного –

+0

Это правильный ответ, чтобы пройти тест. Однако, обратите внимание, что ваша первоначальная проблема заключалась в большом количестве опечаток в вашем коде. Вы, вероятно, сами пришли бы к такому выводу, если бы смогли запустить свой собственный код. В примере: 1) вы пропустили запятую после 'objProperty:" string "', 2) вы вызвали 'myObject.Objmethod();' и объект был 'MyObject', а метод был' objMethod' и т. Д. –

+0

@ MirkoVukušić было фактическим заявлением о проблеме. Нужно было исправить ошибки. –

0

Убедитесь, что вы смотрите на тест и что он ожидает. Тест ожидает, что сможет ссылаться на объект, а не на одно конкретное свойство.

return MyObject; 
Смежные вопросы