前端学习记录 2022.09.01——Math、原型、原型链、继承

133 阅读2分钟

Math常用方法:

 // Math.abs()求绝对值
    Math.abs(-1)  //1
    
 //Math.ceil()  向上取整
    Math.ceil(4)  //4
    Math.ceil(1.2)  //2
    Math.ceil(-1.6)  //-1

 // Math.floor()向下取整
    Math.floor(1.8))  //1
    Math.floor(-1.1)  //2
    
 // Math.round()四舍五入,如果是负数,临界点必须大于5
    Math.round(1.5)  //2
    Math.round(-1.5)  //-1
    Math.round(-1.51)  //-2
    
 // Math.random(),返回0~1之间随机数
    Math.random()

 // Math.max / Math.min  获取最大值和最小值
    Math.max(1, 2, 3)  //3
    Math.min(4, 5, 6)  //4
    
    

构造函数()构造器:创建对象

自定义构造器:
    函数名大驼峰
    构造函数中的this指向new的对象
    在构造器中给对象添加属性:this.属性名传入的值

ES6的Class

必须在class创建之后的构造对象,function构造函数可以在创建之前构造对象
class User{
    contructor(a,b){
    }
}
    

原型、原型对象、原型空间:

对象.prototype 原型对象
prototype:每一个构造函数都有一个prototype
__proto__:存在于构造函数对象中
        每一个对象都有__proto__指向构造函数的原型对象
原形空间的作用:公共的缓存区,构造函数创建的对象公用
构造函数两个身份,函数(prototype)+对象(__proto__)
函数都是由Function构造的

原型链:

每一个构造函数对象都有一个protype
每一个对象都有__proto__指向构造函数的原形对象
使用对象的属性和方法时,如果在对象自身找不到,会顺着原型链找,原型链中找不到则返回undefined.

判断对象中是否有某个属性,包括原型链
    属性名 in 对象名
判断对象中是否有某个属性,不包括原型链 //hasOwnProperty
    对象名.hasOwnProperty
判断某个对象是否由某个构造器构造的
    判断一个数据是否是user对象/日期
    对象 instanceof 构造器
    Object是所有对象的父亲
获取某个对象的构造器
    对象名.conStructor,得到构造函数

继承:

前提:至少两个构造函数
    子类(子构造函数)         父类(父构造函数)
    修改子构造函数.prototype.__proto__=父构造函数.prototype
es6继承:
    前提:两个类  子类和父类
    1.创建两个类
    2.在子类名后用extends父亲
    3.在子类的构造器中第一行用super();构造父类对象,调用父亲构造器