国产探花免费观看_亚洲丰满少妇自慰呻吟_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; // 按值傳遞 主站蜘蛛池模板: 海阳市| 浑源县| 衢州市| 伊宁县| 绥阳县| 双桥区| 北宁市| 忻城县| 保山市| 大足县| 黎城县| 佳木斯市| 台江县| 星座| 遵义县| 介休市| 吉安县| 庆云县| 成都市| 和硕县| 瑞昌市| 桃园市| 河间市| 松溪县| 南通市| 淮安市| 五家渠市| 根河市| 建平县| 囊谦县| 江门市| 临安市| 鄂伦春自治旗| 福鼎市| 扶风县| 曲阳县| 天祝| 静宁县| 井陉县| 高安市| 武夷山市|