JavaScript的变量赋值问题

JavaScript的变量赋值问题

1、基本类型赋值

var a = 1
    function fun(val) {
        val = 3
    }
fun(a)
console.log(a) // 1

过程如下:

JavaScript的变量赋值问题

解释:
	function中只是对val值进行了改变,并没有对a进行改变,全程只是a的值赋给了val

2、对象类型内部值的改变

var a = {name:'abc'}
    function fun(obj) {
        obj.name = 'hc'
    }
fun(a)
console.log(a.name) // hc

JavaScript的变量赋值问题

解释:
	1、obj接收的是a的地址值,所以指向的是a
	2、通过地址找到name,所以可以改变其name值

3、对象地址改变

var a = {name:'abc'}
function fun(obj) {
    obj = {name:'hc'}
}
fun(a)
console.log(a) // 输出{name:'abc'}不发生改变

JavaScript的变量赋值问题

解释:
	1、首先obj指向了a的地址
	2、但是在第二步时,obj又指向了一个新的地址空间,并没有对a进行修改
上一篇:Android Service 的基本用法


下一篇:如何导出已有的谷歌插件,又如何把导出的插件安装到360浏览器中,又如何对插件小修小改?