Web 前端开发 让前端飞

我的JS笔记 -- 类

2017-12-13  本文已影响0人  骷髅不会笑丶

JS是没有类的,但JS可以利用构造函数实现近似类的功能。

构造函数

构造函数,是用来创建对象的函数。与普通的函数声明的区别是,约定函数名首字母大写,还有就是调用时要使用new关键字,如果不使用new调用就跟普通函数一样。

new关键字创建对象过程:

JS一般使用构造函数和原型配合实现类的功能:

    function F(val) { // 构造函数也是函数,所以可以传递参数
        // 检测函数的调用方式,确保构造函数以new操作符形式调用  
        if (!(this instanceof F)) {
            return new F(val);
        }

        // 构造函数中定义实例特有的属性和方法
        this.a = val; 
        this.arr = [];
    }
    // 原型中定义实例对象共享的属性和方法
    F.prototype.array = [];
    F.prototype.sayA = function () { 
        console.log(this.a);
    };
    F.prototype.sayArr = function () { 
        console.log(this.arr);
    };
    F.prototype.sayArray = function () { 
        console.log(this.array);
    };
    
    // 创建实例对象
    var f1 = new F(1);
    var f2 = new F(2);

    f1.arr.push(1); // 实例属性被更改后,实例对象不会共享
    f1.sayArr(); // [1]
    f2.sayArr(); // []

    f1.array.push(1); // 原型属性被更改后,实例对象会共享
    f1.sayArray(); // [1]
    f2.sayArray(); // [1]

类的继承

类有一个很重要的特征,就是类可以继承,在JS中通过原型链实现继承。

在JS中,是通过 原型链 来实现继承。

更多文章在 这里 ,觉得不错希望点个 star

上一篇 下一篇

猜你喜欢

热点阅读