ECMAScript6新增功能续

ECMAScript6新增功能续

对象的属性

            let food={};//一个空对象
            food.sessert="cake";
            food.hot drink="tea";//因为属性的名字包含空格,会报错
            food["hot drink"]="tea";//可以用方括号修改

或者:属性的名字不一定要固定的字符串,它可以定义一个变量,如下

            let food={};//一个空对象
            let drink=hot drink;
            food[drink]="tea";

Object.assign把对象的值复制给另外一个对象

            let food={};
            Object.assign(
                food,
                {drink:"tea"}
                );
            console.log(food);

输出:{drink: “tea”}

Object.setPrototypeOf

Object.setPrototypeOf可以在创建对象之后改变对象的prototype

            let breakfast={
                getDrink(){
                    return "milk";
                }
            };

            let dinner={
                getDrink(){
                    return "beer";
                }
            };

            let sunday=Object.create(breakfast);
            console.log(sunday.getDrink()); //milk
            console.log(Object.getPrototypeOf(sunday)===breakfast); //true
            Object.setPrototypeOf(sunday,dinner);
            console.log(sunday.getDrink()); //beer
            console.log(Object.getPrototypeOf(sunday)===dinner); //true

作用域

以前javascript中只有一个全局作用域和函数作用域,现在有了块级作用域,定义块,可以使用一个大括号

//           if(true)
             {
                var i=0;
                let a=6;
             }
             console.log(i);//0
             console.log(a);//a is not defined

proto

es6中的proto可以得到或者设置proto

            let breakfast={
                getDrink(){
                    return "tea";
                }
            };

            let dinner={
                getDrink(){
                    return "beer";
                }
            };

            let sunday={
                __proto__:breakfast
            };
            console.log(sunday.getDrink());//tea
            console.log(Object.getPrototypeOf(sunday)===breakfast);//true
            sunday.__proto__=dinner;
            console.log(sunday.getDrink()); //beer
            console.log(Object.getPrototypeOf(sunday)===dinner);//true

super

当我设置let sunday={
__proto__:breakfast
};

之后,sunday就有看getDrink()的方法,可是我现在想给sunday添加自己的getDrink()的方法,这时,主要进行覆盖。

            let sunday={
                __proto__:breakfast,
                getDrink(){
                    return super.getDrink()+"what";
                }
            };
            console.log(sunday.getDrink());//teawhat

super.getDrink()的意识是执行一下对象breakfast中的getDrink()方法,得到返回值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值