各种语言中,面向对象中不可缺少的亦是核心的自然是函数,且该函数不是普通的函数,而是构造函数,是通过关键字new进行实例化出来的。因此,函数的重要性显而易见,故而简单说一说函数。
一、函数的产生方式
1、通过函数声明产生:
function 函数名(参数:可有可无){
代码块;
return 1;//返回值,可有可无
}
2、通过函数表达式产生:
var fn=function(参数:可有可无){
代码块;
return 1;//返回值,可有可无
}
3、通过构造函数产生:
var fn=new Function("参数1","参数2",...,"代码块");
4、系统提供的函数:
Object、Arrary、String、Number、Data、Function、Boolean…
注意:Math不是函数,是对象
二、函数的调用方式
1、通过普通函数的调用:
注意:ES3中,普通函数中的this为window,ES5严格模式下,普通函数中的this为undefined,因此在普通函数中不推荐使用this,因在不同模式下this的指向不同。
2、通过对象上的方法调用:例:Obj.fn(),其中this指向调用方法的对象
3、通过构造函数调用
4、通过call、apply调用:call、apply可改变this的指向,只是传参的方式不同。例:obj.fn.call(obj1),表示将this指向obj1。还有一种方式为bind,bind也可改变this的指向,但不执行函数,且在IE6、7、8不兼容。
三、高阶函数
1、作为参数的函数:常见于ajax的回调函数
例:
function fn(function(){
...
}
2、作为返回值的函数
function fn(){
return function(){
...
}
面向对象的思想简单的来说便是将一个个小功能模块化,每一个模块由一个构造函数来完成实现,再将这些小功能联系运用便可实现一个大功能。