手记

【金秋打卡】第八天 如何理解面向对象

第一模块:

课程名称:直面JavaScript中的30个疑难杂症

章节:8-1~8-2

讲师名称:公明2020

第二模块:

在 ES6中,class (类) 作为对象的模板被引入,可以通过 class 关键字定义类。它可以被看作一个语法糖,让对象原型的写法更加清晰、更像面向对象编程的语法。而其本质就是一个函数,就是由ES5里面的语法封装的

// 类中所有函数均不需要写function,且多个函数方法之间不需要添加符号分隔;
class Person {
    constructor(name, sex, age) {
            this.name = name;
            this.sex = sex;
            this.age = age;
        }
        
        // 类中添加方法
    Say() {
    
        console.log('我叫' + this.name, '性别' + this.sex, '今年' + this.age);
    }
}

// 创建实例对象
var xm = new Person('王明', '女', 24);

// 通过实例调用方法
xm.Say(); // 我叫王明 性别女 今年24

对象:万物皆对象

类:对象中细分的类型

实例:某类中实实在在的事物(具体的事物)

ES5中类叫构造函数 ES6中 class 才叫类

JS中的内置类:

Number String Boolean Null Undefined Object Array RegExp Date Functon 小写叫数据类型

Number String Boolean 包装类

var num = 10;//可以操作的具体的事物  实例 属于Number类
var str = 'abc';//String类的实例

var num = new Number(10); //Number{10}  对象10
num = num.valueOf(); //10 基本数据类型

var ary = new Array(10);//参数是数值 表示数组长度
var ary = new Array('abc');//表示数组中有一项是abc
var ary = new Array(10, 20);//超过两项 表示数组有两项10,20

自定义类

为了和普通函数区别:首字母要大写

function Person(){  //为了和普通函数区别:首字母要大写
        //1.创建对象(系统自己创建)
        //2.给对象添加属性(对象用this来表示)
        this.name = 'Lily';  //this称为实例
        this.age = 20;
        this.writeCss = function () {
            console.log('writeCss');
        }
        //3.返回对象(系统自己返回)
    }
    //Person();//这样运行--->Person就是普通函数,this指的是window
    var p1 = new Person();   //通过new运算符运行的函数称为构造函数 称为Person构造函数(Person类)  p1指的是返回的对象 也就是Person类的实例
    var p2 = new Person();
    console.log(p1, p2);

总结:1.若不需要传参,小括号可以省略

2.this指的是实例,跟this.xxx有关,跟私有变量无关

3.只要在构造函数中定义的属性,都是实例私有的属性(有实例都要用的功能公有的功能不能把他放在构造函数里,放在原型上)

4.return不用写。若必须写,return后面跟基本类型数据,对return没有影响,return后面跟引用类型的数据会把实例覆盖

第四模块:


0人推荐
随时随地看视频
慕课网APP