読者です 読者をやめる 読者になる 読者になる

Ext.apply と Ext.applyIf の違い

ExtJS

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がよく使われるらしい。