コメントで提供したものを実際に投稿してコメントすると便利でしょう。
ウィット:
function setDim(attr, modifier, pix) {
if (!modifier) {
this[attr] = pix + 'px';
} else {
this[attr][modifier] = pix + 'px';
}
}
さて、これはどのように機能しますか?はthis
スコープを参照します。直接呼び出すだけの場合:
setDim('style', 'width', 50);
これは単にwindow
orglobal
スコープを呼び出します。el.call()
実際、これはorを使用してスコープを渡すために構築されていますがel.apply()
、多かれ少なかれ同じですが、引数を関数に渡す方法によって異なります。
あなたが本当にそれをどのように呼びたいか:
// Gives you the scope of the element #test1
var test = document.getElementById('test1');
次に、次のように「呼び出す」ことができます。
setDim.call(test, 'style', 'width', 50);
単なる属性 (プレーンでシンプル) の場合は、以下を渡すことに注意してくださいnull
。
setDim.call(test, 'width', null, 50);
私はsetTimeout()
効果のためにこのフィドルで使用しますが、必要ありません:
http://jsfiddle.net/userdude/tCz6j/2/
jQuery コア ソースを調べて、.apply()
使用量を確認してください。これらの 2 つの方法は、「取得」すれば非常に便利です。