1

PhpStormの使用:私のコードは、インスタンス化されたクラスをパラメーターとして関数に渡します。私はそれclassNameが特定のクラスへの参照であることを知っています。しかし、とにかく私のコードに何が何でClassNameあるかを認識させることはできますか?

   $(document).on('validSelection', function(event,className){
      alert( className.sayHello() );
   });

これは、私がたくさん使うことを計画しているので、この特定の関数のコーディングを本当に簡単にするでしょうClassName。PHPでは、次のような操作を行うことで強制的に認識させることができます。

/* @var $variable ClassName */
4

2 に答える 2

1

私のコードは、インスタンス化されたクラスをパラメーターとして関数に渡します

いいえ、そうではありません。関数のリストに別のパラメーターを追加しましたが、呼び出されたとき(jQueryによって、イベントが発生したとき)、渡されません。イベントハンドラーをバインドするときにアクセスできる場合classNameは、クロージャーを利用できます。

var className = {
    sayHello : function() {
       return "hello";
    }
};
$(document).on('validSelection', function(event){
   alert(className.sayHello()); // works
});

一方、カスタムイベントを使用しているようです。したがって、.triggerコードの他の場所への呼び出しがある場合は、2番目の引数として何でも渡すことができ、それがイベントハンドラーに渡されます。

var className = {
    sayHello : function() {
       return "hello";
    }
};
$(document).trigger('validSelection', className);

// On a separate scope...

$(document).on('validSelection', function(event, className){
   alert(className.sayHello()); // works
});
于 2013-01-29T19:53:14.170 に答える
0

JavaScriptにはクラスはありませんが、「プロトタイプ」を使用して私たちと同じように動作します。したがって、オブジェクトの「クラス性」を確認するには、プロトタイプメソッドの1つを使用する必要があります。

すぐに参照できるインスタンス化されたclassNameオブジェクトのコピーがぶら下がっている場合は、それを使用して、他のオブジェクトであるclassName.prototype.constructorかどうかを確認できisPrototypeOfます。

または、それが典型的なオブジェクトclassNameであるかどうかを確認することもできます。instanceOf

于 2013-01-29T19:59:03.863 に答える