Ext.apply と Ext.applyIf の違い
Ext.applyは、対象オブジェクトに対して、全てのプロパティを代入する。
console.log(this.foo); // undefined var ret = Ext.apply(this, { foo: 'bar', hoge: 'piyo' }); console.log(this.foo); // bar
Ext.applyIfは同じプロパティが存在する場合、上書きしない。
this.foo = 99; console.log(this.foo); // 99 var ret = Ext.applyIf(this, { foo: 'bar', hoge: 'piyo' }); console.log(this.foo); // 99
applyとapplyIfの使われ方については以下が参考になる
No.3 ユーティリティクラス | 株式会社ゼノフィ
javascriptには関数のオーバーロードの機能がないため、引数をオブジェクトとして渡すケースが多く、その際にapply、applyIfがよく使われるらしい。