私が見ることができる唯一の違いは、append2 つのパラメーターをmerge取り、2 つ以上のパラメーターを取ることです。
編集:
メソッドのソース コードを読むと、別の違いがわかります。mergeメソッドは他のオブジェクトからプロパティを複製しますが、メソッドappendはそれらをコピーするだけです。
したがって、いくつかのオブジェクトのプロパティとしてオブジェクトまたは配列がある場合、それらは を使用した後に元のオブジェクトから到達可能になりますappend:
var firstObj = {
name: 'John',
lastName: [ 'Doe' ]
};
var secondObj = {
age: '20',
sex: 'male',
lastName: [ 'Dorian' ]
};
//Object.merge(firstObj, secondObj);
Object.append(firstObj, secondObj);
console.log(firstObj.lastName[0]); // Dorian
secondObj.lastName[0] = 'McEnroe';
console.log(firstObj.lastName[0]); // McEnroe
代わりにを使用すると、 を変更mergeしても の配列項目はfurstObj.lastName変更されませsecondObj.lastNameん。これらは同じオブジェクトではないためです。
フィドル: http://jsfiddle.net/Guffa/PrsXj/
また、merge2 番目のパラメーターが文字列の場合、メソッドにはオーバーロードがあります。
merge(obj, "name", obj2)
obj2.nameこれは、プロパティをにコピーするだけです。objつまり、基本的には と同じmerge(obj, { name: obj2.name })です。