继续上一篇文章《如何编写高质量JS代码》今次整理一下javascript函数知识点。
2.使用函数
函数给程序员提供了主要的抽象功能,又提供实现机制。函数可以独立实现其他语言中的多个不同的特性,例如,过程、方法、构造函数,甚至类或模块。
2.1 理解函数调用、方法调用以及构造函数调用之间的不同
针对面向对象编程,函数、方法和类的构造函数是三种不同的概念。
使用模式:
1,函数调用
代码如下:
function hello(username){
return "hello" + username;
}
2,方法调用
代码如下:
var obj = {
hello : function(){
return "hello , " + this.username;
},
username : "floraLam"
};
ohj.hello();//"hello , floraLam"
this变量被绑定到对象是由于hello方法被定义在obj对象中,我们也可以子啊另外一个对象中赋值一份相同的函数引用,并得到相同的答案。
代码如下:
var obj2 = {
hello : obj.hello(),
username : "floraLam"
};
3,构造函数使用
代码如下:
function User(name,passwordHash){
this.name = name;
this.passwordHash = passwordHash;
}
使用new操作符来调用User则视为构造函数。
代码如下:
var u = new User("floraLam","123");
与函数调用和方法调用不同的是,构造函数调用将一个全新的对象作为this变量的值,并隐式返回这个新对象作为调用结果。构造函数的主要职责是初始化该新对象。
2.2 熟练掌握高阶函数
高阶函数无非是那些将函数作为参数或返回值的函数,将函数作为参数(通常称为回调函数,因为高阶函数"随后调用"它)是一种特别强大、富有表现力的惯用法,也在js程序中被大量使用。
考虑数组的标准sort方法,为了对所有数组都能工作,sort方法需要调用者决定如何比较数组中的任意两个元素。
代码如下:
function compareNumber(x,y){
if(x < y){
return -1;
}
if(x > y){
return 1;
}
return 0;
}
[3,1,4,1,5,9].sort(compareNumbers);//[1,1,3,4,5,9]
代码如下:
[3,1,4,1,5,9].sort(function(x,y){
if(x < y){
return -1;
}
if(x > y){
return 1;
新闻热点
疑难解答
图片精选