0

構文が正しいかどうかはわかりませんが、何らかの理由で関数を呼び出せないようです。コードは次のように設定されています。

var MyMethod =
{
    MyFunction1: function(myData)
    {
        /// ...
        MyFunction2: ([myData]);
        return "YES";
    },

    MyFunction2: function(data)
    {
        // ...
        return 'YES';
    },
};

これは関数を呼び出す正しい方法ですか? Function1 は正しく実行されますが、その呼び出しで 2 番目の関数を実行できません。私もそれを持ってみましMyFunction2(myData)たが、運もありません。

また、関数が var 内に設定されているため、function1 を function2 の下に配置したが、それも機能しなかったと考えました。

ここで私が間違っていることは何ですか?

4

4 に答える 4

3
var MyMethod = {
    MyFunction1: function(myData) {
        MyMethod.MyFunction2([myData]);
        return 'YES';
    },
    MyFunction2: function(data) {
        // whatever ...
        return 'YES';
    }
};

を使用することもできますが、特にorを使用している場合this.MyFunction2([myData])は、 の実行がasMyFunction1を使用しているとは限りません。MyMethodthiscall()apply()

于 2013-09-05T05:49:51.863 に答える
1

メソッドはグローバルではなく、オブジェクトのメンバーであるため、thisアクセスするには を使用する必要があり、コロンは識別子の一部ではありません。

this.MyFunction2([myData]);
于 2013-09-05T05:55:43.600 に答える
-1
var MyMethod = {

    MyFunction1: function (myData) {
        /// ...
       return  this.MyFunction2([myData]);

    },

    MyFunction2: function (data) {
        // ...
       return data;
    },
};
  • ここにオブジェクトMymethodがありMyfunction1、そのプロパティとして があり、functionそれを値として割り当てました。
  • したがって、プロパティの値にアクセスする場合は常に、次のようにする必要があります。

MyObject.Property//に似ているMymethod.MyFunction2(param)

構文を知る前に、オブジェクト、プロパティ、メソッドの意味を知っておく必要があると思います:

オブジェクト:オブジェクトは、プロパティを持つものです。プロパティには名前と値があります。名前は常に文字列で (ほとんどの場合、引用符なしで記述できます)、値は JavaScript がサポートするものなら何でもかまいません: 数値、文字列、ブール値、null、未定義、またはオブジェクトへの参照。

property : オブジェクトに属する単純な変数です。変数自体はプロパティではありません。プロパティと変数は、あらゆる種類のデータを保持できます。

method :プロパティが関数を保持する場合、それはメソッドと呼ばれます。

理解する最も簡単な方法は、例です:

var a = {
    b: function () {some code}
    };

    a //is an object
    b //is property of a     aka b is a method since it holds a function as its value.
    function () { //some code}//is property value aka value of b.
于 2013-09-05T05:51:15.747 に答える