明白函数
笔墨占多数,列位看官不要讨厌呀~~
在JavaScript中,每一个函数实在都是一个Function对象。(不是有句话说:统统皆对象?)
函数总是会返回一个值,然则一个历程有能够返回一个值,也有能够不返回。(所以函数不是历程~)
如果一个函数中没有运用return语句,则它默许返回undefined。要想返回一个特定的值,则函数必需运用 return 语句来指定一个所要返回的值。(运用new关键字挪用一个组织函数除外)。
挪用函数时,通报给函数的值被称为函数的实参(值通报),对应位置的函数参数名叫作形参。
如果实参是一个包括原始值(数字,字符串,布尔值)的变量,则就算函数在内部转变了对应形参的值,返回后,该实参变量的值也不会转变。
如果实参是一个对象援用,则对应形参会和该实参指向同一个对象。如果函数在内部转变了对应形参的值,返回后,实参指向的对象的值也会转变。
终究有代码了,撒花~~
/* 定义函数 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,趁便说点)
在函数执行时,this 关键字并不会指向正在运转的函数本身,而是指向挪用该函数的对象。
所以,如果你想在函数内部猎取函数本身的援用,只能运用函数名或许运用arguments.callee属性
(严厉形式下不可用),如果该函数是一个匿名函数,则你只能运用后者。