Javascript是按值传递还是按引用传递

 我来答
凹凸熳
2017-04-15 · TA获得超过362个赞
知道小有建树答主
回答量:131
采纳率:66%
帮助的人:26.6万
展开全部

JS求值策略有诸多争议和不同版本。

对于这个问题的答案:“JS中基本类型是按值传递的,对象类型是按共享传递的。”

共享传递解释为:(call by sharing,也叫按对象传递、按对象共享传递)。最早由Barbara Liskov. 在1974年的GLU语言中提出。该求值策略被用于Python、Java、Ruby、JS等多种语言。

你可以自己写个demo运行下结果就知道。

var a = 1;
function foo(x) {
    x = 2;
}
foo(a);
console.log(a); // 仍为1, 未受x = 2赋值所影响

var obj = {x : 1};
function foo(o) {
    o.x = 3;
}
foo(obj);
console.log(obj.x); // 3, 被修改了!
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式