首页 > 编程知识 正文

前端面试es6的新特性(es6常用的新特性)

时间:2023-05-03 09:03:08 阅读:95778 作者:1418

基本概念

反映是一个内置的对象,提供了拦截Java脚本语言操作的方法(主要作用)。它将部分属于语言内部的方法转移到显示上去,比如定义性能。优化了一部分函数的返回结果,它的风格上倾向于函数式编程,保留对象的默认行为(代理人),没有构造函数,所有的属性方法都是静态的,类似数学。显示和代理是一一对应的,所有代理可以拦截的属性,反映提供一个默认。

静态方法

get,取值操作,不存在返回未定义的Reflect.get(目标,propertyKey[,receiver]);

内部这绑定接收方定义变量对象1={ 0

a: 1,

b: 2,

获取c(){ 0

归还这个。

},

};

var object2={

a: 4,

b: 4,

};

Reflect.get(object1,' c ');

//3

Reflect.get(object1,' c ',object 2);

//8

设置,赋值操作Reflect.set(target,propertyKey,value[,receiver]);

同得到一样,也是内部这绑定接收器。var object1={

a: 1,

设置b(值){ 0

返回this.a=值;

},

};

var object2={

a: 0,

};

Reflect.set(object1,' b ',2,object 2);

//真

目标一

//{a:1}

目标2

//{a:2}

object1.foo

//未定义

object2.foo

//未定义

与代理同时使用,传递听筒会触发定义性能,触发定义属性的前提是一定要先传递接收器。让对象={ 0

a: 1

};

let handler={

设置(目标、键、值、接收器){ 0

console.log('set value ',value);

反射集(目标、键、值、接收器)

},

定义属性(目标、键、属性){ 0

控制台。日志(' defineperoperty ',属性);

reflect . defineperproperty(目标、键、属性);

}

};

让obj=新的代理(对象,处理程序);

物体。a=2;

//设置值2

定义属性{value: 2}

2

已经,对象是否包含某个属性,返回勤恳的咖啡值Reflect.has(目标,属性键);

定义变量对象={ 0

a: 1,

};

Reflect.has(object,' a ');

//真

删除属性,删除某个属性,返回勤恳的咖啡值Reflect.deleteProperty(目标,属性键);

定义变量对象={ 0

a: 1,

};

Reflect.deleteProperty(对象,“一”);

//真

新建操作Reflect.construct(target,argumentsList[,new target]);

函数教师(姓名){ 0

this.name=name

}

const eric=Reflect.construct(教师,[' Eric ']);

//教师{姓名:‘埃里克’

getPrototypeOf,读取样机属性Reflect.getPrototypeOf(目标);

函数教师(姓名){ 0

this.name=name

}

const eric=Reflect.construct(教师,[' Eric ']);

反思。getprototypeof(Eric)===老师。原型;

//真

设置协议类型,设置目标对象原型,返回勤恳的咖啡值Reflect.setPrototypeOf(目标,原型);

常数对象={ };

Reflect.setPrototypeOf(对象,数组。原型);

对象长度;

//0

应用,绑定这对象执行给定函数Reflect.apply(target,thisArgument,arguments list);

const list=[1,2,3,4,5,6];

常数最小值=反射.应用(数学。最小,数学,列表);

定义性能,对象定义属性reflect . defineperproperty(目标、属性键、属性);

让对象={ };

reflect . defineperproperty(对象,"名称",{ 0

价值: '埃里克'

});

//{name: 'Eric'}

getowntpropertysdescriptor,获取指定属性的描述对象反思。getowntpropertysdescriptor(目标,属性键);

我是可扩展的,返回指定对象是否可扩展反思。isextensable(目标);

预防措施,阻止对象扩展Reflect.preventExtensions(目标);

var empty={ };

Reflect.isExtensible(空);

/* true */

Reflect.preventExtensions(空);

Reflect.isExtensible(空);

//false

ownKeys,返回对象的所有属性(包含符号)Reflect.ownKeys(目标);

定义变量对象={ 0

a: 1,

b: 2,

[符号。对于(' c')]: 3,

[符号。对于(' d')]: 4,

};

Reflect.ownKeys(对象);

//['a ',' b ',符号(三),符号[d]

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。