JavaScript :JS传值方式

这段时间干了一些全栈的事,对JS有了一些学习与了解,这一篇主要是JS的传值的方式的总结。

我们一般说JavaScript是传值的,但是从某种角度来说其实也可以说是传的引用,下面来整理一下。

这里写图片描述

我们一般将JS的传值分成两种,当传递的参数是原始类型的时候是完全的传值。
当传递的事对象的时候,传递的是对象的引用的克隆版,传递的仍然是值。

以下是传统类型:

这里写图片描述

包括5种数据类型,javaScript中没有类的概念,只有一种伪类。

引用类型:

这里写图片描述

怎么理解呢?
当我们传值得时候,对该值操作是不会影响到原本的数据的。
当我们共享的方式的时候:对对象的属性控制(a.属性名)可以操作到原本的值,但是对对象直接读写(a=1)并不能联系的原本的对象。

var obj = {
    value: 1
};
function foo(o) {
    o.value = 2;
    console.log(o.value); //2  --赋值
}
foo(obj);
console.log(obj.value) // 2  --值被改变


var obj = {
    value: 1
};
function foo(o) {
    o = 2;
    console.log(o); //2    --修改的是o
}
foo(obj);
console.log(obj.value) // 1 --没有影响
通常比较成员类型的方式:

这里写图片描述

方法等都属于,这也是我们使用var 定义方法能被调用执行的原因。

参考来源:
https://juejin.im/post/5902a37ca22b9d0065cc4f7a

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值