❀JavaScript学习笔记——JS函数

323 阅读2分钟

1、函数定义

函数的声明不是一个可执行语句,所以不需要分号结束; 

函数表达式可以存储在变量中:var x = function(a,b){return a * b} ;

变量也可以作为一个函数使用:var z = x(2 , 3); 

函数提升:函数可以在声明之前调用,使用表达式定义函数时无法提升; 

函数是对象; 

箭头函数(ES6新增):var x =(x,y)=>x * y ; 

箭头函数不能提升,需先声明后调用,箭头函数会默认绑定外层this的值,在箭头函数中this的值和外层this是一样的。

2、函数参数 显式参数(Parameters)与隐式参数(Arguments)

显式参数在函数定义时列出,隐式参数在函数调用时传递给函数真正的值;

arguments对象:函数内置的对象,arguments对象包含了函数调用的参数数组.

3、函数调用

4种调用方式,每种方式的不同在于this的初始化: 一般而言,在JavaScript中,this指向函数执行时的当前对象

4种调用方式:

 ①作为一个函数调用 function()

 ②作为方法调用:(将函数定义为对象的方法)

 var myObject={ 
     firstName: "John", 
     lastName: "Doe", 
     fullName: function ( ){ 
         return this.firstName + " "+this.lastName; 
     } 
} 
myObject.fullName( ) ; 

 ③使用构造函数调用函数:(如果函数调用前使用了 new 关键字, 则是调用了构造函数) 

function myFunction(arg1, arg2) { 
    this.firstName = arg1;
    this.lastName = arg2; 
 }
var x = new myFunction("John","Doe");
x.firstName;

 ④作为函数方法调用函数:call()和apply()两个方法可用于调用函数

call()、apply()、bind()都是用来重新定义this对象,不同点在于传参时的写法不同

www.runoob.com/w3cnote/js-…

4、JavaScript闭包

使得函数拥有私有变量,在函数执行时形成私有的作用域,保护函数里面的私有变量不受外界干扰。