a={id:1,get:function(){alert(this.id)}}
$("#test").click(a.get)//この時に参照しているidは1ではありませんただし、テスト
1 を取得したい場合は、コンテキスト $ を変更する必要があります。
$.proxy() の機能は、現在のコンテキストを変更することです。
$("#test").click($.proxy(a,"get"))
$("#test").click($.proxy(a.get,a))
proxy: function( fn, context ) {//関数コンテキストを変更します。これは設定されたオブジェクトを指します
ここでのパラメータには 2 つの方法があります: function fn fn method context
Function Method fn[context] Function fn
if ( typeof context === "string" ) {//content が文字列の場合、fn のメソッド fn[ context ] とみなされ、関数
var かどうかが判断されます。 tmp = fn[ context ];
context = fn;
fn = tmp;
if ( !jQuery.isFunction( fn ) ) {//すぐに未定義を返す関数ではありません
return unknown;
}
var args = slide.call( argument, 2),//fn と content の後のパラメータを実行する関数のパラメータとして使用します
proxy = function() {
return fn .apply( context, args.concat( slide.call( argument ) ) );//指定されたコンテキストセットを持つ実行可能関数を返します。fn は実行可能行数です。これをコンテンツに指します、args.concat(パラメータとして
};
proxy.guid = fn.guid = fn.guid || jQuery.guid;// を識別するために使用されるグローバル カウンターfunction can 削除するために使用されます
return proxy;
},
//access このメソッドは主に jquery 内で使用され、主に DOM グループの 1 つまたは複数の属性を設定します。 (jquery object) 、スタイルの値、DOM グループの特定の属性とスタイルの値を取得します (jquery object)
//elems、key 属性、value 属性値で操作されるオブジェクト グループ、exec のデフォルトはtrue、fnが動作するために使用する関数、passがメイン attrにval、css、html、text、data、width、height、offsetを設定する場合は
access: function(elems, key)にする必要があります。 , value, exec, fn, pass) {
var length = elems.length;
//複数の属性を設定します
if ( typeof key === "object" ) {// 属性値がオブジェクトの場合、ループして dom グループ (jquery オブジェクト) の属性と対応する値
for ( var k in key ) {
jQuery.access( elems, k, key[k], exec, fn, value );
}
return elems;//return Result
}
//単一の属性を設定します
if (value !== unknown) {//値が存在する場合、オブジェクトのグループまたは単一の属性を設定します。存在しない場合は、それを取得します。 doms[0] (jquery オブジェクト) 特定の属性値はオブジェクトのみを返すか、オブジェクトが直接 undefiend を返すことができます。存在しません;
exec = !pass && exec && jQuery.isFunction(value);//現在は jquery デフォルトのパスは null、exec は true、value が関数
for ( var i = 0; i fn( elems[i], key, exec ? value.call( elems [i], i, fn( elems[i], key ) ) : value, pass );// exec が true の場合、操作オブジェクトのシーケンスと操作属性値をパラメーターとして渡します。それ以外の場合は、属性キーの値を設定します。For value }
return elems;属性を取得します
return length ? fn( elems[0], key ) : unknown;
},
now : function() {//現在の時刻を返します
return (new Date()) .getTime();