js值傳遞和引用傳遞練習
<!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>