ES6对象+类class

对象

属性和方法、字面量+new Object、操作属性点语法或者中括号、对象转换valueOf和toString、解构赋值:数组/参数/对象、/

属性管理:添加删除:delete、检测:hasownproperty-in-、设置原型:setprototype、对象合并:assign(对象、合并对象)、

对象拷贝:浅拷贝:引用-同时修改(assign、点语法)、深拷贝:创建新的值(forof添加相关代码)

工厂函数:将相同的操作封装到一起,不需要new,需要return

函数对象:函数.toString()返回函数本身、

抽象封装:将属性封装let data = { name , age}

属性特征:得到描述:getownpropertydescriptor、属性特性:configurable修改-enumeravle枚举-writable可写-value值

声明定义:class user{}

constructor(参数){super();this}

*** 类中定义的方法在原型里面,但是不可以枚举,类其实就是函数***

静态:类属性,只有通过类名才可以访问,static 定义属性和方法

访问器:为了防止违法修改属性,使用getset关键字定义方法,使用时直接调用方法名,不加括号

访问控制:protected:不允许外部操作,但是可以继承操作、protected:1、_属性名,提示,修改使用setter、2、symbol:let smy = symbol() 对象中使用{【sym】当作属性名},不可以被遍历出来,3、使用weakmap:let host=weakmap();在对象里面使用{host.set(this,’'值)}、private:#

symbol新加的数据类型,表示唯一,创建不用new,let sym = symbol(描述参数),

继承:属性继承:实际上是在函数中实现User.call(this ,name)、原生js主要操作原型链,class使用super调用属性和方法:原来使用this的时候,this指向当前对象父对象,无法访问子对象的属性,使用super,this始终指向调用对象、覆盖:子类方法和父类同名:覆盖父类方法、静态继承:静态属性和方法extends之后可以继承

对象检测:判断instanceof或者isprototypeof

猜你喜欢

转载自blog.csdn.net/weixin_43124546/article/details/111141018