成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

JavaScript的參數(shù)傳遞

zhangxiangliang / 3248人閱讀

摘要:一前言中所有函數(shù)的參數(shù)都是按照值傳遞。二基本數(shù)據(jù)類型在向函數(shù)傳遞基本數(shù)據(jù)類型的時候,被傳遞的值會被復(fù)制給一個局部變量對象的一個元素。所以局部變量的變化會反映到函數(shù)外部。所以你修改了屬性會影響到函數(shù)外部。

一、前言

ECMA中所有函數(shù)的參數(shù)都是按照值傳遞。

二、基本數(shù)據(jù)類型

在向函數(shù)傳遞基本數(shù)據(jù)類型的時候,被傳遞的值會被復(fù)制給一個局部變量(arguments對象的一個元素)。

function test( x ) {
    x = 10; //第一次賦值
    console.log( "x1 : " + x );    
    console.log( "arguments1 : " + arguments )
    console.log( "arguments[0]1 : " + arguments[0] )
    
    arguments[0] = 100;
    
    console.log( "x2 : " + x );    
    console.log( "arguments2 : " + arguments )
    console.log( "arguments[0]2 : " + arguments[0] )
};

test(5);

function test( num ) {
    num = num + 10;
    return num;
};

var num = 20;
var result = test( num );
console.log( "num : " + num );
console.log( "result : " + result );
三、引用數(shù)據(jù)類型

在向函數(shù)傳遞引用數(shù)據(jù)類型的時候,會把這個值的內(nèi)存地址復(fù)制給一個局部變量。所以局部變量的變化會反映到函數(shù)外部。

function setName( obj ) {
    obj.name = "盧林";
};

var lou = new Object();
window.setName( lou );
console.log( lou.name );

function setName( obj ) {
    obj.name = "盧林";
    //重新new
    obj = new Object();
    obj.name = "others"; //其實已經(jīng)不是傳入的內(nèi)存地址
};

var lou = new Object();
window.setName( lou );
console.log( lou.name );

其實原理很簡單,引用類型傳入的是內(nèi)存地址的值(當(dāng)然JavaScript操作內(nèi)存地址),比如是8bit,內(nèi)存地址是:1100 1010,指向的內(nèi)容是person對象。所以你修改了name屬性會影響到函數(shù)外部。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/78200.html

相關(guān)文章

  • JavaScript求值策略

    摘要:關(guān)于的求值策略,問中函數(shù)的參數(shù)傳遞是按值傳遞還是按引用傳遞回答很經(jīng)典。所以不能說中函數(shù)的參數(shù)傳遞嚴(yán)格按值傳遞或按引入傳遞。中還采用一種參數(shù)傳遞策略,叫按共享傳遞。中參數(shù)是必須先求值再作為實參傳入函數(shù)的。參考求值策略中函數(shù)參數(shù)的默認(rèn)值 最近在研究 lambda 演算中的 η-變換 在 JavaScript 中的應(yīng)用,偶然在 stackoverflow 上看到一個比較有意思的問題。關(guān)于 J...

    MrZONT 評論0 收藏0
  • JavaScript深入之參數(shù)按值傳遞

    摘要:深入系列第九篇,除了按值傳遞引用傳遞,還有第三種傳遞方式按共享傳遞定義在高級程序設(shè)計第三版,講到傳遞參數(shù)中所有函數(shù)的參數(shù)都是按值傳遞的。 JavaScript深入系列第九篇,除了按值傳遞、引用傳遞,還有第三種傳遞方式 —— 按共享傳遞 定義 在《JavaScript高級程序設(shè)計》第三版 4.1.3,講到傳遞參數(shù): ECMAScript中所有函數(shù)的參數(shù)都是按值傳遞的。 什么是按值傳遞呢?...

    DataPipeline 評論0 收藏0
  • JavaScript 是如何工作JavaScript 共享傳遞和按值傳遞

    摘要:它對數(shù)組和對象使用按值傳遞,但這是在的共享傳參或拷貝的引用中使用的按值傳參。例如在這里,變量和值在執(zhí)行期間存儲在堆棧中。返回值這是可選的,函數(shù)可以返回值,也可以不返回值。變量被推入堆棧,從而在執(zhí)行時成為的副本。 這是專門探索 JavaScript 及其所構(gòu)建的組件的系列文章的第 22 篇。 想閱讀更多優(yōu)質(zhì)文章請猛戳GitHub博客,一年百來篇優(yōu)質(zhì)文章等著你! 如果你錯過了前面的章節(jié),可...

    keithyau 評論0 收藏0
  • JavaScript 是如何工作JavaScript 共享傳遞和按值傳遞

    摘要:它對數(shù)組和對象使用按值傳遞,但這是在的共享傳參或拷貝的引用中使用的按值傳參。例如在這里,變量和值在執(zhí)行期間存儲在堆棧中。返回值這是可選的,函數(shù)可以返回值,也可以不返回值。變量被推入堆棧,從而在執(zhí)行時成為的副本。 這是專門探索 JavaScript 及其所構(gòu)建的組件的系列文章的第 22 篇。 想閱讀更多優(yōu)質(zhì)文章請猛戳GitHub博客,一年百來篇優(yōu)質(zhì)文章等著你! 如果你錯過了前面的章節(jié),可...

    陳偉 評論0 收藏0
  • JavaScript之按值傳遞

    摘要:中所有函數(shù)的參數(shù)都是按值傳遞的。基本類型本身是按值傳遞,具有不可變性,對基本類型的修改,實質(zhì)上都是在棧內(nèi)存中創(chuàng)建了新的值。中把這種拷貝也認(rèn)為是按值傳遞。 本文共 1200 字,讀完只需 5 分鐘 概述 參數(shù)的傳遞分為按值傳遞和按引用傳遞,而 JavaScript 中參數(shù)的傳遞只有按值傳遞。 ECMAScript 中所有函數(shù)的參數(shù)都是按值傳遞的。 所謂按值傳遞就是: 把函數(shù)外部的值復(fù)制給...

    xiangchaobin 評論0 收藏0
  • 講清楚之 javascript 參數(shù)傳值

    摘要:講清楚之參數(shù)傳值參數(shù)傳值是指函數(shù)調(diào)用時,給函數(shù)傳遞配置或運行參數(shù)的行為,包括通過進行傳值。所以對的賦值會改變上下文棧中標(biāo)識符保存的具體值此時如果使用的是按引用傳遞,則變量所指向的對象因該也被賦值為。 講清楚之 javascript 參數(shù)傳值 參數(shù)傳值是指函數(shù)調(diào)用時,給函數(shù)傳遞配置或運行參數(shù)的行為,包括通過call、apply 進行傳值。 在實際開發(fā)中,我們總結(jié)javascript參數(shù)傳...

    itvincent 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<