1

jsPlumb を使用してバインドし、メソッドを変数として渡し、コールバックとして使用します。呼び出されたとき、「this」はメソッドがメンバーであるオブジェクトではありません。メソッドのオブジェクト インスタンスにアクセスして、その変数や他のメンバー関数にアクセスするにはどうすればよいですか?

別のライブラリであるコールバック呼び出しメソッドを制御することはできません。オブジェクトの init メソッドからバインディングを呼び出すだけです。thisメソッド内_connectionがそのオブジェクトであると予想していました。

jsPlumb.bind('connection', this._connection);
4

2 に答える 2

2

thisfor anyの値はfunction呼び出されたときに決定されます。は、またはとして呼び出されたかどうか以外functionに、「オブジェクト」との関連はありません。object.method()method.call(object)

したがって、function固定値で aを渡すには、バインドthisする必要があります。

jsPlumb.bind('connection', this._connection.bind(this));

jQuery には、次のようなラッパーと互換性フィルも含まれていますjQuery.proxy()

jsPlumb.bind('connection', $.proxy(this._connection, this));
于 2013-06-30T04:18:43.890 に答える