<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>值传递及引用传递的练习</title>
</head>
<script type="text/javascript">
//?????
/*
//1.
var num1 = 50
var num2 = num1
num1 = 100
console.log(num1)//100
console.log(num2)//50*/
/*//2.
var num = 10
function f1(num){
num = 50//这的num是局部变量。因为和形参一样。
num2 = 100//隐式全局变量
console.log(num)///50
}
f1(num)
console.log(num)//10
console.log(num2)//100*/
/*//3.
var num1 = 10
var num2 = 20
function f1(num,num1){
num = 30//这的num是局部变量。因为和形参一样。
num1 = 30//这的num1是局部变量。因为和形参一样。
num2 = 30//隐式全局变量
console.log(num)//30
console.log(num1)//30
console.log(num2)//30
}
f1(num1,num2)//函数体内就是 10=30 20=30 num2=30
console.log(num)//报错
console.log(num1)//10
console.log(num2)//30*/
//4.
function Person(name,age,weight){
this.name = name
this.age = age
this.weight = weight
}
function f1(person){
person.name = '张三'
person = new Person('李四',18,250)//这句话是person对象的地址不是p的,所以p.name还是张三,但是person.name是李四
}
var p = new Person('王五',18,500)
console.log(p.name)//王五
f1(p)//此时p.name = '张三'
console.log(p.name)//张三
/*
//1.
var num1 = 50
var num2 = num1
num1 = 100
console.log(num1)//100
console.log(num2)//50*/
/*//2.
var num = 10
function f1(num){
num = 50//这的num是局部变量。因为和形参一样。
num2 = 100//隐式全局变量
console.log(num)///50
}
f1(num)
console.log(num)//10
console.log(num2)//100*/
/*//3.
var num1 = 10
var num2 = 20
function f1(num,num1){
num = 30//这的num是局部变量。因为和形参一样。
num1 = 30//这的num1是局部变量。因为和形参一样。
num2 = 30//隐式全局变量
console.log(num)//30
console.log(num1)//30
console.log(num2)//30
}
f1(num1,num2)//函数体内就是 10=30 20=30 num2=30
console.log(num)//报错
console.log(num1)//10
console.log(num2)//30*/
//4.
function Person(name,age,weight){
this.name = name
this.age = age
this.weight = weight
}
function f1(person){
person.name = '张三'
person = new Person('李四',18,250)//这句话是person对象的地址不是p的,所以p.name还是张三,但是person.name是李四
}
var p = new Person('王五',18,500)
console.log(p.name)//王五
f1(p)//此时p.name = '张三'
console.log(p.name)//张三
</script>
<body>
</body>
</html>