欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JavaScript對(duì)象引用與賦值實(shí)例詳解

 更新時(shí)間:2017年03月15日 12:07:28   作者:錢天兵  
這篇文章主要介紹了JavaScript對(duì)象引用與賦值,結(jié)合實(shí)例形式分析了JavaScript對(duì)象引用及賦值的操作技巧與相關(guān)注意事項(xiàng),需要的朋友可以參考下

本文實(shí)例講述了JavaScript對(duì)象引用與賦值。分享給大家供大家參考,具體如下:

<script type="text/javascript">
//例子一: 引用
var myArrayRef = new Array(0,1,2); //創(chuàng)建數(shù)組對(duì)象
var mySeconArrayRef = myArrayRef; // 對(duì)象復(fù)制.
myArrayRef[0] = 100; // 修改元素值
alert(mySeconArrayRef[0]);
/**
* 輸出 100; 學(xué)過其它語言的都應(yīng)該知道這里應(yīng)該輸出的是0 為什么輸出的是100呢?
* 上面程序通過把myArrayRef對(duì)象復(fù)制給了mySeconArrayRef這時(shí)就存在了2個(gè)獨(dú)立的 但最初值是相同的對(duì)象
* 因?yàn)槭仟?dú)立的為什么修改myArrayRef會(huì)對(duì)別一個(gè)對(duì)象有影響呢?大家都知道只有當(dāng)他們引用的是同一個(gè)對(duì)象時(shí)這時(shí)修改一個(gè)才會(huì)
* 對(duì)別一個(gè)產(chǎn)生影響.但是在javascript語言中創(chuàng)建的對(duì)象myArrayRef值中其時(shí)保存的是對(duì)象的引用(也就是一個(gè)地址).
* 也就是 我用 new Array生成的保存在內(nèi)存中而new Array把它所在的地方告訴了myArrayRef,myArrayRef又把這地址告訴了mySeconArrayRef
* 他們兩個(gè)都指向的是new Array生成對(duì)象的地址而不是把對(duì)象保存在myArrayRef中,所以通過其中的一個(gè)去修改值時(shí)其時(shí)是修改他們同指象的那對(duì)象.
*/
alert(mySeconArrayRef[0] );
//例子二: 賦值
var myVa = 'ABC'; //把ABC的值 賦予了myVa
var myVb = myVa; // myVa 賦值給 myVb
myVa = 'DEF'; //修改myVa
/**
* 輸出的是:ABC. 因?yàn)槭前阎当4嬖诹俗兞苛?而不是保存的是引用地址,所以他們兩個(gè)是相對(duì)獨(dú)立的整體.
*/
alert(myVb);
</script>

如果真要復(fù)制對(duì)象互不影響,則要通過轉(zhuǎn)換賦值或者遍歷key:value來復(fù)制你中的方法和屬性。

注意:對(duì)象的子對(duì)象也是引用,所以遍歷賦值的時(shí)候要判斷,子元素是否是對(duì)象,如果子元素是對(duì)象,則繼續(xù)對(duì)子元素進(jìn)行遍歷賦值。

轉(zhuǎn)換賦值方式:

var data = {a:1,b:2,c:3,d:[0,1,2,3]};
var str = JSON.stringify(data);
var data1 = $.parseJSON(str); //$為jQuery對(duì)象需要引入jQuery包
data1["e"] = 4;
data1["d"][0] = 11;
console.log(data);
console.log(data1);

輸出結(jié)果:

{a: 1, b: 2, c: 3, d: [0,1,2,3]}
{a: 1, b: 2, c: 3, d: [11,1,2,3], e: 4}

相互沒有影響

當(dāng)對(duì)象引用做為函數(shù)參數(shù)傳遞時(shí)候,依然會(huì)相互影響,切記,如下示例:

var data = {a:1,b:2,c:3,d:{q:4,w:5,e:6}};
var data1 = data;
function con(data2){
data2["r"] = 5;
console.log(JSON.stringify(data2));
}
con(data1);
console.log(JSON.stringify(data));

輸出結(jié)果:

{"a":1,"b":2,"c":3,"d":{"q":4,"w":5,"e":6},"r":5}
{"a":1,"b":2,"c":3,"d":{"q":4,"w":5,"e":6},"r":5}

對(duì)象引用賦值后,如果將對(duì)象置空,相互間是不受影響的,如下:

var arr = {"a":"1","b":"2"};
var arr1 = arr;
arr = {};
arr["a"] = 2;
console.log(arr1);
console.log(arr);

輸出結(jié)果:

{"a":"1","b":"2"},{"a":2}

更多關(guān)于JavaScript相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《javascript面向?qū)ο笕腴T教程》、《JavaScript錯(cuò)誤與調(diào)試技巧總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》及《JavaScript數(shù)學(xué)運(yùn)算用法總結(jié)

希望本文所述對(duì)大家JavaScript程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • URL地址中的#符號(hào)使用說明

    URL地址中的#符號(hào)使用說明

    下面的內(nèi)容介紹了#號(hào)的使用,因?yàn)樵趗rl中多個(gè)#號(hào)代表不同的意義與區(qū)別。
    2011-02-02
  • Ionic學(xué)習(xí)日記實(shí)現(xiàn)驗(yàn)證碼倒計(jì)時(shí)

    Ionic學(xué)習(xí)日記實(shí)現(xiàn)驗(yàn)證碼倒計(jì)時(shí)

    本篇文章主要介紹了Ionic學(xué)習(xí)日記實(shí)現(xiàn)驗(yàn)證碼倒計(jì)時(shí),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-02-02
  • 瀏覽器兼容console對(duì)象的簡要解決方案分享

    瀏覽器兼容console對(duì)象的簡要解決方案分享

    不同瀏覽器或者版本之間對(duì)于console對(duì)象的支持不盡相同,而console方法在開發(fā)調(diào)試過程中都是不錯(cuò)的工具。難道要在上線前把所有console.xxxx去掉以保證某些瀏覽器不報(bào)錯(cuò)么。其實(shí)可以變通解決
    2013-10-10
  • jquery、js操作checkbox全選反選

    jquery、js操作checkbox全選反選

    全選反選checkbox在實(shí)際應(yīng)用中比較常見,本文有個(gè)不錯(cuò)的示例,大家可以參考下
    2014-03-03
  • javascript相關(guān)事件的幾個(gè)概念

    javascript相關(guān)事件的幾個(gè)概念

    對(duì)于事件來講,首先,我們需要了解這樣幾個(gè)概念:事件;事件處理程序;事件類型;事件流;事件冒泡;事件捕獲;事件對(duì)象;事件方面的性能優(yōu)化(事件委托、移除事件處理程序);常見的瀏覽器兼容問題。
    2015-05-05
  • Bootstrap實(shí)現(xiàn)各種進(jìn)度條樣式詳解

    Bootstrap實(shí)現(xiàn)各種進(jìn)度條樣式詳解

    本篇文章主要介紹了Bootstrap實(shí)現(xiàn)各種進(jìn)度條樣式詳解 ,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-04-04
  • JS庫之wow.js使用方法

    JS庫之wow.js使用方法

    近日,在做項(xiàng)目中,需要做到滾動(dòng)條滑到某個(gè)位置時(shí),才能顯示動(dòng)畫,網(wǎng)上查詢到有個(gè)wow.js可以達(dá)到要求,現(xiàn)在把使用方法做如下總結(jié),需要的朋友參考下吧
    2017-09-09
  • js中base64與file之間的轉(zhuǎn)換方法

    js中base64與file之間的轉(zhuǎn)換方法

    這篇文章主要給大家介紹了關(guān)于js中base64與file之間的轉(zhuǎn)換方法,最近項(xiàng)目中需要實(shí)現(xiàn)把圖片的base64編碼轉(zhuǎn)成file文件的功能,然后再上傳至服務(wù)器,需要的朋友可以參考下
    2023-09-09
  • JS數(shù)組Reduce方法功能與用法實(shí)例詳解

    JS數(shù)組Reduce方法功能與用法實(shí)例詳解

    這篇文章主要介紹了JS數(shù)組Reduce方法功能與用法,結(jié)合實(shí)例形式詳細(xì)分析了JS數(shù)組Reduce方法操作數(shù)組統(tǒng)計(jì)、去重等相關(guān)操作技巧,需要的朋友可以參考下
    2020-04-04
  • JS(JQuery)操作Array的相關(guān)方法介紹

    JS(JQuery)操作Array的相關(guān)方法介紹

    本篇文章主要是對(duì)JS(JQuery)操作Array的相關(guān)方法進(jìn)行了詳細(xì)的介紹,需要的朋友可以過來參考下,希望對(duì)大家有所幫助
    2014-02-02

最新評(píng)論