これら 2 つの拡張機能の違いは何ですか?
angular.extend(a,b);
$.extend(a,b);
jquery.extend は十分に文書化されていますが、 angular.extend には詳細がなく、コメントには回答がありません。( https://docs.angularjs.org/api/ng/function/angular.extend )。
angular.extend はディープ コピーも提供しますか?
これら 2 つの拡張機能の違いは何ですか?
angular.extend(a,b);
$.extend(a,b);
jquery.extend は十分に文書化されていますが、 angular.extend には詳細がなく、コメントには回答がありません。( https://docs.angularjs.org/api/ng/function/angular.extend )。
angular.extend はディープ コピーも提供しますか?
前の回答では言及されていなかった、2 つの微妙な違いが 1 つあります。
jQuery の .extend() を使用すると、値が定義されている場合にのみ、キーと値のペアを条件付きで追加できます。したがって、jQuery では、 this:が未定義の場合$.extend({}, {'a': x ? x : undefined});
に返されます。{}
x
ただし、Angular の .extend() では、 this:は未定義であってもangular.extend({}, {'a': x ? x : undefined});
を返します。そのため、何があっても鍵はそこにあります。{'a': undefined}
x
これは、必要なものに応じて、良いことにも悪いことにもなります。とにかく、これは2 つのライブラリの動作の違いです。