大家真的瞭解函數的傳參嘛?

前言

函數傳參咱們每天都在用,可是大家真的瞭解嘛?就當大家很瞭解了,畢竟是一些基礎的東西,我就寫幾個例子,不喜勿噴。數組

例子

demo1:函數

var obj = {name: 'mirok'} 
function demo1(obj) {
    obj.name = 'july'
}
demo1(obj)
console.log(obj.name)  //july,命名參數的引用和外部一致

demo2:code

var obj = {name: 'mirok'} 
function demo2(obj) {
    obj.name = 'july'
    obj = new Object()
    obj.name = 'deny'
}
demo2(obj)
console.log(obj.name) //july ,參數是按值傳遞,可是引用指向同一堆內存

demo3:內存

var obj = {name: 'mirok'} 
function demo3(obj) {
    arguments[0].name = 'july'
}
demo3(obj)
console.log(obj.name) //july,arguments的修改和命名參數修改一致,可是argumetns數組由參入參數的數量決定,而不是命名參數的數量

就是引用類型值和基本類型值傳值會有一點差別io

相關文章
相關標籤/搜索