- JavaScript中对象有以下几种常用功能:
- 对象可以通过字面量来创建。
- 对象可以赋值给变量、数组项、或其他对象的属性。
- 对象可以作为参数传递给函数。
- 对象可以作为函数的返回值。
- 对象能够具有对象创建和分配属性。
- JavaScript中函数拥有对象的所有能力:
- 通过字面量创建。
function test(){}
- 可以赋值给变量、数组项、或其他对象的属性。
1 var test=function(){}; 2 test.push(function(){}); 3 test.data=function(){};
- 可以作为参数传递给函数。
function call(test){ test();}; call(function(){});
- 可以作为函数的返回值。
1 function return(){ 2 return function(){}; 3 }
- 能够具有对象创建和分配属性。
var test=function(){}; test.data="hello";
函数也是对象,唯一的区别是:函数可以被调用。函数会被调用以便执行某种动作。
- 回调函数
其他代码会在随后的某个合适时间点“回过来调用”的函数。
- 作用:利用比较器排序。
1 var values=[0,3,2,5,7,4,8,1]; 2 values.sort(function(value1,value2){ 3 return value1-value2; 4 });
- 函数定义的四种方式(前两种最常用):函数的创建方式影响着函数被调用的时间、函数的行为以及函数可以在哪个对象上被调用。
- 函数声明:
- 函数表达式
- 箭头函数(ES6新增语法)
- 函数构造函数
- 生成器函数
- 函数声明和函数表达式
1. 函数声明
function samurai(){ //函数体 }
构成:以强制性function开头,其后紧跟函数名,以及括号内的可选参数名
2.函数表达式
var a=function(){};
将函数赋给变量。
区别:函数声明中函数名是强制的,对于函数表达式函数名是可选的。因为函数声明是独立语句,函数的基本要求是它能够被调用,所以它必须有一种被引用方式,只能通过名字。
3.箭头函数(ES6新增特性) 箭头函数的this与声明所在的上下文相同,没有单独的this值。
(param1,param2...)=>expression
接收多个参数并返回表达式的值。
当函数表达式没那么简单时,箭头操作符后边需要跟一个代码块。
1 var greet=name=>{ 2 var hellostring="greeting"; 3 return hellostring+name; 4 }
5 greet("ml"); //"greetingml"
箭头函数中return和普通函数一样,如果return后边没有语句,返回值是undefined,反之,返回值为return后边表达式的值。