ES6 12对象的简写改进

 
 要点:1.简写方案 2.表达式方案

 

 一、简写方案
 1.ES6可以让对象字面量中属性初始值实现简写,一定程度降低了代码量
function fn(name,age){
    // ES5的写法
    return {
        name:name,
        age:age
    }
}
 

function fn(name,age){
    // ES6的写法
    return {
        name,age
    }
}
 

console.log(fn('Mr.Lee','age'));

  

 2.ES6还提供了对象字面量中方法的简写方式,也降低了一定的代码量
let obj={
    // ES5的写法
    fn:function(){
        return 'ES5 fn';
    }
}
console.log(obj.fn());
let obj={
    // ES6的写法
    fn(){
        return 'ES6 fn';
    }
}
console.log(obj.fn());

  

二、表达式方案
 1.ES6允许对象字面量中,使用表达式进行属性名称的拼接操作
// 拼装组合
let obj={
    ['user' +'Name']:'Mr.Lee',
};
console.log(obj.userName);
console.log(obj['userName']);
 

// 有空格的情况下
let obj={
    ['user'+' Age']:100,
}
console.log(obj['user Age'])
 

// 字符串属性
let obj={
    'user Gender':'男',
}
console.log(obj['user Gender'])

  

 2.ES6提供了在对象字面量中使用可计算(动态)属性名称
// 通过变量myName动态更新obj属性名
// 问题是当变量值更改了,属性名就失效了
let myName='name';
let obj={
    name:'Mr.Lee'
}
console.log(obj[myName]);
 

// 使用[myName]可计算属性名
// 实现了真正的动态计算
let myName='name';
let obj={
    [myName]:'Me.Lee'
}
console.log(obj[myName]);

 

 3.ES6在对象字面量方法上,也可以使用拼装名称
let obj={
    ['f'+'n'](){
        return 'fn';
    }
}
console.log(obj.fn());

 

posted @ 2021-11-25 19:33  翟莹萍  阅读(54)  评论(0编辑  收藏  举报