前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >JS中值的传递方式 | 前端卧谈会第11期

JS中值的传递方式 | 前端卧谈会第11期

作者头像
web前端教室
发布2018-02-06 14:59:25
7040
发布2018-02-06 14:59:25
举报
文章被收录于专栏:web前端教室

音频请点此进行收听

音频原文:

今天在segmentfault看到一篇文章,是讲JS传值的方式的,觉得很有价值,想和大家分享一下。

都知道JS中有二种值的传递方式,分别是按值传递和按引用传递。这个东西,在计算机科学里,叫求值策略,它是决定变量之间,函数的形参和实参之间是如何传递的。

简单的讲,按值传递,看例子,下面的音频原文里有例子,

然后来看对象,

可以看到属性值被修改了,说明对象是按引用传递的,形参和实参引用的是同一个对象。

那再来看下面这个,

看,虽然形参和实参引用的是一个对象,但形参的修改并未能影响到实参。这是为啥呢?

按文中的说法,JS的基本类型,是按值传递的。而对像类型的传递,是按共享传递的。就是说,给函数传入一个对象时,函数接受的是一个传入对象的引用的副本。在这种共享传递中,对接收传入对象的形参的赋值,不会影响到原来的被传入的对象。就像下面这样的,不能以修改形参的方式,来修改实参的值。

图4

但是,虽然是引用的副本,但引用的对象是相同的。所以,修改函数里形参的属性,却是可以的,是可以影响到原来的被传入的实参的属性值。

注意啊,只是属性。

图5

最后!

分享最好的一点在于,我原来不懂,给你们讲一遍,不管你们懂不懂,反正我是懂了。

哈哈哈,开心

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2016-07-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 web前端教室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档