2017-01-09 8 views
1

私はオブジェクトからメソッドを呼び出す方法を知っています。つまり、myObj.objMethodが呼び出された場合、それは文字列を返します。関数内のオブジェクトのメソッドを呼び出す

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

しかし、私はfollowing code wars exerciseをしようとしていますし、何をすべきかを把握することはできません。関数自体が呼び出されるように思えます。これを行うには、私はarguments.callee.call(MyObject.objMethod())を使用してみましたが、期待通りにこれは最大呼び出しスタックを超えています。この関数内から関数のオブジェクトのメソッドを呼び出すことができるかどうかは誰にも分かりますか?

はここ(の一つ)である下記の私の試み(S):

プロパティobjMethod MyFunctionをによって呼び出される必要があります。

function myFunction() { 

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

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

}; 

は、ここでは、コードの戦争命令です。

myFunctionが再び機能するように構文を修正できますか? 中かっこ、コンマ、大文字小文字の区別などを確認してください。

とここで提供元のコードです:

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

    return myObject.Objmethod(); 
}; 
+0

')(MyObject.objMethodを返します。MirkoVukušić@' –

+0

私が最初に試みたが、あなたは間違ったケースを持って、あなたのリンクの例では –

+0

を動作しませんでした。あなたは 'return myObject.Objmethod();'を書きました...間違ったケーシングを書きます –

答えて

2

これは、問題文は

プロパティobjMethodはMyFunctionので呼ばれるべきである

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

    return MyObject; 
}; 

あなたのソリューションです。

すべてのテストに合格します。

+0

ええ、そうでした! OK、私は彼らが少し探していたものを誤解したと思う。 –

+0

これは正解で、合格する。しかし、あなたの最初の問題はコードに多くのタイプミスがあったことに注意してください。あなた自身のコードを実行することができたら、おそらくこの結論に至るでしょう。例:1) 'objProperty:"文字列 "'の後にコンマを見逃していた、2)あなたが 'myObject.Objmethod();'を呼び出し、オブジェクトが 'MyObject'で、メソッドが' objMethod'だったなど –

+0

@MirkoVukušićThat実際の問題声明でした。 1つは、その中のエラーを修正する必要がありました。 –

0

テストを見て、それが期待していることを確認してください。このテストでは、特定のプロパティではなくオブジェクトを参照できることが期待されています。

return MyObject; 
関連する問題