首页 > 语言 > JavaScript > 正文

如何编写高质量JS代码(续)

2024-05-06 14:45:44
字体:
来源:转载
供稿:网友

继续上一篇文章《如何编写高质量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;

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选