变量、做用域、内存---part2

上回书说道,基本变量和引用变量在内存的概念上保存值得方式是不同的,他们不单单有这点不同,在从一个变量向另外一个变量赋值基本变量和引用变量的处理也是不同的,从一个变量向另外一个变量复制基本类型的值,会在变量上建立一个新值,而后把该值复制到新的变量位置上函数

在这段赋值的动做中a和b是两个彻底独立的值,二者除了赋值和被赋值以外没有任何关系,换句话来讲,你对a进行任何操做b不会有任何改变

当一个变量向另外一个变量复制引用类型的值得时候,一样也会将存储在变量对象中的值复制一份放到位新变量分配的空间中。不一样的是, 这个值得副本其实是一个指针,而这个指针指向存储在堆中的一个对象,若是你更改这个指针,另外一个对象也会有变化

我先创造了一个对象叫obj1

又创造了个变量叫obj2把obj1的值付给了obj2

咱们给obj1对象添加了一个属性叫作name,值是Jerry

结果咱们发现obj1和obj2之中都有一个name属性叫Jerry,形成这个问题的缘由上面说了,可是文字看上去不是很好理解,因此咱们来搞个图片理解一下

js中全部的 函数的参数都是按值来传递的(废话),简单的传参方式咱们以前的章节有所提到过。把函数体外部的值赋值给函数体内部就像把变量从一个赋值到另外一个同样

外部的obj1传递到函数内部以后,函数吧obj1的属性新增了一个name,外部的obj1也会多一个属性叫作name
相关文章
相关标签/搜索