私がそれを好きなら
$.extend(function_arguments, defaults_arguments)
すべてのdefault_argumentsが上書きされるわけではありません。たとえば、そのうちの1つが関数(this
)である場合、function_argumentsの1つが異なるタイプであれば、オブジェクトに残ります。
$ .extendは正確に何をしますか?array_mergeのように機能するべきではありませんが、オブジェクトに対しては機能しますか?
わかりました、より明確にするために:
....function(args){
$.extend(args, {
// here are defaults
foo: this,
abc: 1
});
}
何らかの理由で、args内にある場合でも、「foo」のデフォルト値を取得します。
オブジェクトを逆にすると、次のようになります。
....function(args){
$.extend({
// here are defaults
foo: this,
abc: 1
}, args);
}
argsからプロパティのみを取得しますが、デフォルトは完全に欠落しています:|