English 中文(简体)
j Query 是否扩大了在物体之间设定参考范围?
原标题:Is jQuery´s extend creating a reference between the objects?

我用枪把帽子延伸。 在延伸之后,为什么会改变枪声?

var shat = [{bang:true}, {bumm: false}, {bong: false}]
var shot = [{bang:false}, {bumm: false}, {bong: false}]

$.extend(shat, shot)

shot[0].bang = true

console.log("shat", shat) 
// prints
Object
bang: true // why is this true?
Object
bumm: false
Object
bong: false

我正在假定一个参考点,或者说,由于某种原因,这种延伸是在枪击之后发生的。 禁止g=真实。 问题在于,我想在延长期限之后对枪弹进行改装,但当然想对帽子产生任何影响。 为什么出现这种情况,以及我可以做些什么来避免这种情况?

http://jsfiddle.net/yEnph/3/"rel=“noreferer”

最佳回答

否则,$.extend only beow-cplica nature*。 这并非令人生动。

在这种情况下,扩展的特性为“0”、“1”、“2”等,因此,<>>>>> > 代码[0] = = = 射线/代码在延伸后即属实。 页: 1 如果两者都对同一标的。 既然是同一物体,......那么,一经修改,就改写如下:every where。

单独审议“完整副本”(见援引jQuery.extend)。 我提到的另一个做法是,它也可以在其他情况下使用,是将物体序列化,然后将其降级——例如与JSON。

var shat = [{bang:true}, {bumm: false}, {bong: false}]
var shot = [{bang:false}, {bumm: false}, {bong: false}]
$.extend(true, shat, shot) // use "deep copy"
shat[0] === shot[0]        // false; different objects now so...
shot[0].bang = "boom"      // ...this will not affect the object named by shat[0]
shot[0].bang               // "boom"
shat[0].bang               // false

幸福 co。


* 对于每一财产,p,在源物体中,它只是target[p] = 源[p]。 请注意,在 Java,Arrays只是一种带有魔法的物体的特殊亚类:length: 指数N的数值为“n”。

问题回答

http://api.jquery.com/jQuery.extend/“rel=“nofollow” http://api.jquery.com/jQuery.extend/。 目标扩大,但不是阿雷拉。 例如,您的<代码>shat变量从未发生变化。

有趣的是,这根本就意味着extend就阵列开展工作。

之所以如此,是因为这两个阵列都提到了同一目标。 这也是“新”的原因:

http://jsfiddle.net/yEnph/4/"rel=“nofollow”> http://jsfiddle.net/yEnph/4/

var a = { test: "one"};
var b = a;

a.test="new";

alert(b.test);

Both variables have a reference to the same object so editing the object updates the object, which they both reference.

如果关键物被采用,则仅延伸至超标物:

var a = {
   hello: "kitty"
},

b = {
   hello: "world"
}

$.extend( a, b );

console.log( a );
//Object
//hello: "world"

由于阵列只是标有数字财产名称的物体,除<编码>hello”外,您将以相同的原则取而代之。

由于您有物体,而不是原始物体,shat > 取到, 即 标的,因此,其改写为原来的<代码>shat物体。 因此,修改<条码>明细的物体将修改<条码>,<>shat,因为它们是相同的物体。





相关问题
getGridParam is not a function

The HTML: <a href="javascript:void(0)" id="m1">Get Selected id s</a> The Function: jQuery("#m1").click( function() { var s; s = jQuery("#list4").getGridParam( selarrrow )...

selected text in iframe

How to get a selected text inside a iframe. I my page i m having a iframe which is editable true. So how can i get the selected text in that iframe.

jQuery cycle page with links

I am using the cycle plugin with pager functionality like this : $j( #homebox ) .cycle({ fx: fade , speed: fast , timeout: 9000, pager: #home-thumbs , ...

jquery ui dialog opens only once

I have a button that opens a dialog when clicked. The dialog displays a div that was hidden After I close the dialog by clicking the X icon, the dialog can t be opened again.

jConfirm with this existing code

I need help to use jConfirm with this existing code (php & Jquery & jAlert). function logout() { if (confirm("Do you really want to logout?")) window.location.href = "logout.php"; } ...

Wrap text after particular symbol with jQuery

What I m trying to do, is wrap text into div inside ll tag. It wouldn t be a problem, but I need to wrap text that appears particularly after "-" (minus) including "minus" itself. This is my html: &...

热门标签