<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    網(wǎng)絡(luò)上看到一篇文章,《JavaScript 傳遞參數(shù)是值傳遞?還是值傳遞???》

    地址:http://www.xiaoxiaozi.com/2010/03/05/1719/

    當(dāng)然看這之前我是很清晰知道基本數(shù)據(jù)類型傳值,引用數(shù)據(jù)類型傳引用。

    剛看了個(gè)開(kāi)頭就有點(diǎn)暈了,文章所說(shuō):

    “在本文開(kāi)頭,首先,十萬(wàn)以及萬(wàn)分肯定的說(shuō)一句,JavaScript 函數(shù)傳遞參數(shù)時(shí),是值傳遞。”

    有興趣的朋友可以去看原文。 我看了之后就順手寫(xiě)起了示例代碼:

    (1) 典型傳值

    function setName(name)
                {
                    name 
    = "test";
                }
                
    var person = new Object();
                person.name 
    = " hechangmin ";
                
                setName(person.name);
                alert(person.name); 
    // hechangmin


    (2) 典型的傳引用

    function setName(obj)
                {
                    obj.name 
    = "test";
                }
                
    var person = new Object();
                person.name 
    = " hechangmin ";
                
                setName(person);
                alert(person.name); 
    // test

    我想大家對(duì)輸出的結(jié)果都沒(méi)異議。這也是我記憶中的理解。

    下面帶領(lǐng)大家看一些可能引起大家議論的示例:

    var x = new Object();
                x.name 
    = "test";
                    
                
    function setName(obj)
                {
                    obj 
    = x;
                    alert(obj 
    == x);    // true 因?yàn)樯弦痪溥M(jìn)行了賦值操作
                }
                
    var person = new Object();
                person.name 
    = " hechangmin ";
                
                setName(person);
                alert(person.name); 
    // hechangmin
                alert(person == x); // false 

    傳進(jìn)去的 person 肯定是 引用數(shù)據(jù)類型。(這點(diǎn)沒(méi)歧義)

    進(jìn)去后發(fā)現(xiàn) 給引用賦以新值 x 。函數(shù)內(nèi)部 alert(obj == x); 也輸出了 true

    說(shuō)明賦值是成功的。

    而函數(shù)執(zhí)行完畢,發(fā)現(xiàn)值依然沒(méi)變。 就這個(gè)結(jié)果來(lái)看,說(shuō)是傳值還真沒(méi)什么說(shuō)不過(guò)去的。

    但是我隨后在 http://m.tkk7.com/magicdoom/archive/2006/02/27/32555.html  (建議有興趣的朋友可以看看)找到一篇講 javascript 傳值 傳引用的文章。

    文章有說(shuō)傳遞進(jìn)去的引用型參數(shù),在內(nèi)部如果直接對(duì)引用參數(shù)賦值。 javascript 會(huì)自動(dòng)生成一份copy ,而不去影響原有的引用。

    ===========

    綜上所述 ,基本就都明白。文章寫(xiě)到這里基本就接近尾聲,不過(guò)這里提到了 javascript string , 下次有機(jī)會(huì)總結(jié)關(guān)于 string 的神奇后,再和大家分享交流。

    posted on 2010-03-18 16:12 -274°C 閱讀(7677) 評(píng)論(3)  編輯  收藏 所屬分類: web前端


    FeedBack:
    # re: 關(guān)于傳值和傳引用的插曲
    2011-01-22 09:18 | ffff
    # re: 關(guān)于傳值和傳引用的插曲
    2011-01-22 09:23 | ffff
    這個(gè)很容易理解嘛,
    在函數(shù)里,那個(gè)obj不是被換成x了嗎?
    本來(lái)obj是保存person的引用,當(dāng)執(zhí)行了obj=x;時(shí),obj就被改編成保存x的引用了。根本就沒(méi)有什么特別需要強(qiáng)調(diào)的吧?  回復(fù)  更多評(píng)論
      
    # re: 關(guān)于傳值和傳引用的插曲
    2014-07-11 09:24 | bandit
    大家不要看這篇文章 本來(lái)很簡(jiǎn)單的事情反而被博主繞復(fù)雜了,  回復(fù)  更多評(píng)論
      

    常用鏈接

    留言簿(21)

    隨筆分類(265)

    隨筆檔案(242)

    相冊(cè)

    JAVA網(wǎng)站

    關(guān)注的Blog

    搜索

    •  

    積分與排名

    • 積分 - 914354
    • 排名 - 40

    最新評(píng)論

    主站蜘蛛池模板: 免费看大黄高清网站视频在线| 亚洲精品无码av人在线观看| 一级成人a做片免费| 亚洲一区免费观看| 国产精品无码一区二区三区免费| 最近的2019免费中文字幕| 亚洲三级在线播放| 精品亚洲成α人无码成α在线观看| 免费A级毛片av无码| 水蜜桃视频在线观看免费| 亚洲精品高清国产一久久| 免费观看日本污污ww网站一区| 久久99精品国产免费观看| 特级毛片A级毛片100免费播放| 久久精品a亚洲国产v高清不卡 | 久久久高清免费视频| 国产精品黄页免费高清在线观看| 99视频有精品视频免费观看| 亚洲Aⅴ在线无码播放毛片一线天| 亚洲成AV人片在线播放无码| 国产免费观看青青草原网站| 亚洲一区二区免费视频| 中文字幕成人免费高清在线视频 | 免费在线黄色网址| 美女视频黄.免费网址| 91亚洲自偷手机在线观看| 亚洲日本在线观看视频| 美女被免费视频网站a国产| 免费人成在线观看网站品爱网| 一级毛片免费全部播放| 日韩亚洲国产高清免费视频| 国产yw855.c免费视频| 18禁止观看免费私人影院| 久久免费线看线看| 特级做a爰片毛片免费看| 亚洲hairy多毛pics大全| 亚洲an日韩专区在线| 亚洲视频一区在线播放| 久久精品国产精品亚洲艾| 自拍偷自拍亚洲精品情侣| 久久福利资源网站免费看|