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

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

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

    網絡上看到一篇文章,《JavaScript 傳遞參數是值傳遞?還是值傳遞???》

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

    當然看這之前我是很清晰知道基本數據類型傳值,引用數據類型傳引用。

    剛看了個開頭就有點暈了,文章所說:

    “在本文開頭,首先,十萬以及萬分肯定的說一句,JavaScript 函數傳遞參數時,是值傳遞。”

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

    (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

    我想大家對輸出的結果都沒異議。這也是我記憶中的理解。

    下面帶領大家看一些可能引起大家議論的示例:

    var x = new Object();
                x.name 
    = "test";
                    
                
    function setName(obj)
                {
                    obj 
    = x;
                    alert(obj 
    == x);    // true 因為上一句進行了賦值操作
                }
                
    var person = new Object();
                person.name 
    = " hechangmin ";
                
                setName(person);
                alert(person.name); 
    // hechangmin
                alert(person == x); // false 

    傳進去的 person 肯定是 引用數據類型。(這點沒歧義)

    進去后發現 給引用賦以新值 x 。函數內部 alert(obj == x); 也輸出了 true

    說明賦值是成功的。

    而函數執行完畢,發現值依然沒變。 就這個結果來看,說是傳值還真沒什么說不過去的。

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

    文章有說傳遞進去的引用型參數,在內部如果直接對引用參數賦值。 javascript 會自動生成一份copy ,而不去影響原有的引用。

    ===========

    綜上所述 ,基本就都明白。文章寫到這里基本就接近尾聲,不過這里提到了 javascript string , 下次有機會總結關于 string 的神奇后,再和大家分享交流。

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


    FeedBack:
    # re: 關于傳值和傳引用的插曲
    2011-01-22 09:18 | ffff
    fffffff  回復  更多評論
      
    # re: 關于傳值和傳引用的插曲
    2011-01-22 09:23 | ffff
    這個很容易理解嘛,
    在函數里,那個obj不是被換成x了嗎?
    本來obj是保存person的引用,當執行了obj=x;時,obj就被改編成保存x的引用了。根本就沒有什么特別需要強調的吧?  回復  更多評論
      
    # re: 關于傳值和傳引用的插曲
    2014-07-11 09:24 | bandit
    大家不要看這篇文章 本來很簡單的事情反而被博主繞復雜了,  回復  更多評論
      

    常用鏈接

    留言簿(21)

    隨筆分類(265)

    隨筆檔案(242)

    相冊

    JAVA網站

    關注的Blog

    搜索

    •  

    積分與排名

    • 積分 - 914351
    • 排名 - 40

    最新評論

    主站蜘蛛池模板: 亚洲第一福利网站| 看全免费的一级毛片| 24小时免费直播在线观看| 亚洲av午夜国产精品无码中文字 | 在线视频精品免费| 亚洲国产精品18久久久久久| 国产成人精品亚洲精品| 91九色精品国产免费| 黄床大片30分钟免费看| 亚洲系列中文字幕| 亚洲国产精品成人一区| 精品国产sm捆绑最大网免费站| 国产精品久久久久久亚洲小说| 国产AV无码专区亚洲AV毛网站 | 最新久久免费视频| 亚洲色偷偷综合亚洲AV伊人蜜桃 | 性色av免费观看| 在线观看免费黄网站| 在线a亚洲老鸭窝天堂av高清| 国产亚洲精品激情都市| 思思99re66在线精品免费观看| 日韩精品无码免费专区午夜不卡| 亚洲av无码专区亚洲av不卡| 久久精品亚洲一区二区三区浴池 | 国产人成亚洲第一网站在线播放| 国产亚洲婷婷香蕉久久精品| 国产又长又粗又爽免费视频| 最近的中文字幕大全免费8| 国产精品高清免费网站| 亚洲av无码偷拍在线观看| 亚洲欧洲自拍拍偷综合| 亚洲尤码不卡AV麻豆| 国产一区视频在线免费观看| 成人免费午夜无码视频| 外国成人网在线观看免费视频| 四虎一区二区成人免费影院网址 | 亚洲香蕉在线观看| 亚洲综合久久1区2区3区| 国产∨亚洲V天堂无码久久久| 亚洲高清无码专区视频| 国产免费人成视频在线观看|