gpt4 book ai didi

javascript - 在 javascript 中的 $.extend(true, {}, obj) 中, 'true' 的用途是什么?

转载 作者:行者123 更新时间:2023-11-28 15:11:45 25 4
gpt4 key购买 nike

比较两个构造函数时:

  function C(options, id) {
this.id = id;

// Extend defaults with provided options
this.options = $.extend(true, {}, {
greeting: 'Hello world!',
image: null
}, options);


};

  function C(params, id) {
this.$ = $(this);
this.id = id;

// Extend defaults with provided options
this.params = $.extend({}, {
taskDescription: '',
solutionLabel: 'Click to see the answer.',
solutionImage: null,
solutionText: ''
}, params);
}

true $.extends 之后需要变量?

其次,是声明this.$ = $(this)必要的,因为第一个构造函数没有它,并且它们做了同样的事情。

最佳答案

如果 options 有任何嵌套对象,如果您想对其进行深层复制而不是让新对象引用相同的嵌套对象,则 true 是必需的和原件一样。

简单的例子:

var inner = {
foo: "bar"
};
var outer = {
inner: inner
};
var shallowCopy = $.extend({}, outer);
var deepCopy = $.extend(true, {}, outer);
console.log(shallowCopy.inner.foo); // "bar"
console.log(deepCopy.inner.foo); // "bar"
outer.inner.foo = "updated";
console.log(shallowCopy.inner.foo); // "updated"
console.log(deepCopy.inner.foo); // "bar"

实时复制:

var inner = {
foo: "bar"
};
var outer = {
inner: inner
};
var shallowCopy = $.extend({}, outer);
var deepCopy = $.extend(true, {}, outer);
console.log(shallowCopy.inner.foo); // "bar"
console.log(deepCopy.inner.foo); // "bar"
outer.inner.foo = "updated";
console.log(shallowCopy.inner.foo); // "updated"
console.log(deepCopy.inner.foo); // "bar"
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

More in the $.extend documentation .

关于javascript - 在 javascript 中的 $.extend(true, {}, obj) 中, 'true' 的用途是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36116319/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com