Math常用方法:
Math.abs(-1)
Math.ceil(4)
Math.ceil(1.2)
Math.ceil(-1.6)
Math.floor(1.8))
Math.floor(-1.1)
Math.round(1.5)
Math.round(-1.5)
Math.round(-1.51)
Math.random()
Math.max(1, 2, 3)
Math.min(4, 5, 6)
构造函数()构造器:创建对象
自定义构造器:
函数名大驼峰
构造函数中的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
判断某个对象是否由某个构造器构造的
判断一个数据是否是user对象/日期
对象 instanceof 构造器
Object是所有对象的父亲
获取某个对象的构造器
对象名.conStructor,得到构造函数
继承:
前提:至少两个构造函数
子类(子构造函数) 父类(父构造函数)
修改子构造函数.prototype.__proto__=父构造函数.prototype
es6继承:
前提:两个类 子类和父类
1.创建两个类
2.在子类名后用extends父亲
3.在子类的构造器中第一行用super();构造父类对象,调用父亲构造器