文字居多,各位看官不要厭煩呀~~函數
在JavaScript中,每一個函數其實都是一個Function對象。(不是有句話說:一切皆對象?)this
函數老是會返回一個值,可是一個過程有可能返回一個值,也有可能不返回。(因此函數不是過程~)code
若是一個函數中沒有使用return語句,則它默認返回undefined。要想返回一個特定的值,則函數必須使用 return 語句來指定一個所要返回的值。(使用new關鍵字調用一個構造函數除外)。對象
調用函數時,傳遞給函數的值被稱爲函數的實參(值傳遞),對應位置的函數參數名叫做形參。ip
若是實參是一個包含原始值(數字,字符串,布爾值)的變量,則就算函數在內部改變了對應形參的值,返回後,該實參變量的值也不會改變。字符串
若是實參是一個對象引用,則對應形參會和該實參指向同一個對象。假如函數在內部改變了對應形參的值,返回後,實參指向的對象的值也會改變。io
終於有代碼了,撒花~~console
/* 定義函數 myFunc */ function myFunc(theObject) { //實參 mycar 和形參 theObject 指向同一個對象. theObject.brand = "Toyota"; } /* * 定義變量 mycar; * 建立並初始化一個對象; * 將對象的引用賦值給變量 mycar */ var mycar = { brand: "Honda", model: "Accord", year: 1998 }; /* 彈出 'Honda' */ window.alert(mycar.brand); /* 將對象引用傳給函數 */ myFunc(mycar); /* * 彈出 'Toyota',對象的屬性已被修改. */ console.log(mycar.brand);
(關於函數中的this,順便說點)function
在函數執行時,this 關鍵字並不會指向正在運行的函數自己,而是指向調用該函數的對象。
因此,若是你想在函數內部獲取函數自身的引用,只能使用函數名或者使用arguments.callee屬性
(嚴格模式下不可用),若是該函數是一個匿名函數,則你只能使用後者。匿名函數