參數為普通對象
當定義、調用函數時,傳參可以傳入對象,此時將對象的引用地址賦予定義函數時的形參變量。如下實例
<code>var obj={a:1};
function fn2(o){
o.a++;
}
fn2(obj);
console.log(obj);/<code>
上述代碼中,調用fn2函數時,傳入實參為對象obj,將引用地址賦予o,此時,o和obj的引用地址相同,二者是同一個對象,所以修改了o.a的值,obj.a也被修改了。
參數為函數(函數也是對象)
當定義、調用函數時,傳參也可以傳入函數, 例如回調函數,如下實例
<code>function countNumber(fn){
return fn(3,5);
}
function getSum(a,b){
return a+b;
}
需要計算3+5;
var s=countNumber(getSum);
console.log(s);
結果:8/<code>
把getSum函數當作實參傳入countNumber函數中後,此時fn即被賦值為getSum,執行getSum()函數並返回結果,實現函數的回調。這裡的countNumber函數相當於中間的橋接,執行參數中的函數。
閱讀更多 栗子紀 的文章
關鍵字: JavaScript 函數 參數