深入浅出JavaScript:明白函数

明白函数

笔墨占多数,列位看官不要讨厌呀~~

  • 在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属性
(严厉形式下不可用),如果该函数是一个匿名函数,则你只能运用后者。

    原文作者:幸运儿
    原文地址: https://segmentfault.com/a/1190000005035987
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞