国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

JavaScript中的值是按值傳遞還是按引用傳遞問題探討

2019-11-20 13:16:38
字體:
供稿:網(wǎng)友

最近遇到個有趣的問題:“JS中的值是按值傳遞,還是按引用傳遞呢?”
 
在分析這個問題之前,我們需了解什么是按值傳遞(call by value),什么是按引用傳遞(call by reference)。在計(jì)算機(jī)科學(xué)里,這個部分叫求值策略(Evaluation Strategy)。它決定變量之間、函數(shù)調(diào)用時實(shí)參和形參之間值是如何傳遞的。
 
按值傳遞 VS. 按引用傳遞

按值傳遞(call by value)是最常用的求值策略:函數(shù)的形參是被調(diào)用時所傳實(shí)參的副本。修改形參的值并不會影響實(shí)參。
 
按引用傳遞(call by reference)時,函數(shù)的形參接收實(shí)參的隱式引用,而不再是副本。這意味著函數(shù)形參的值如果被修改,實(shí)參也會被修改。同時兩者指向相同的值。
 
按引用傳遞會使函數(shù)調(diào)用的追蹤更加困難,有時也會引起一些微妙的BUG。
 
按值傳遞由于每次都需要克隆副本,對一些復(fù)雜類型,性能較低。兩種傳值方式都有各自的問題。
 
我們先看一個C的例子來了解按值和引用傳遞的區(qū)別:

復(fù)制代碼 代碼如下:

void Modify(int p, int * q)
{
    p = 27; // 按值傳遞 主站蜘蛛池模板: 吴堡县| 平乡县| 西贡区| 东宁县| 乐东| 长治县| 伊川县| 苗栗县| 西林县| 安化县| 汉中市| 容城县| 海盐县| 广水市| 泸溪县| 土默特左旗| 丽水市| 宝清县| 香河县| 信丰县| 游戏| 云阳县| 临安市| 亚东县| 徐汇区| 锦屏县| 长春市| 忻城县| 华宁县| 宁安市| 调兵山市| 云霄县| 安义县| 体育| 册亨县| 望江县| 花垣县| 万盛区| 隆尧县| 松潘县| 湄潭县|