六、javascript扩展的对象功能


一、Javascript扩展的对象功能

ES6 注重于提高对象的效用,这是因为在 JS 中几乎所有的值都是某种类型的对象。

1.1 对象字面量语法的扩展

在 ES5 及更早版本中,对象字面量是“键/值对”的简单集合。这意味着在属性值被初始化时可能会有些重复

function createPerson(name, age){
   
    return {
   
        name: name,
        age: age
    }
}

createPerson() 函数创建了一个对象,其属性名与函数的参数名相同。此结果看起来重复了name 与 age ,尽管一边是对象属性的名称,而另一边则负责给属性提供值。在所返回的对象中,它的 name 键与 age 键分别被变量 name 与 age 变量所赋值。

在 ES6 中,你可以使用属性初始化器的速记法来消除对象名称与本地变量的重复情况。当对象的一个属性名称与本地变量名相同时,你可以简单书写名称而省略冒号与值

function createPerson(name, age){
   
    return {
   
        name,
        age
    }
}

当对象字面量中的属性只有名称时, JS 引擎会在周边作用域查找同名变量。若找到,该变量的值将会被赋给对象字面量的同名属性。在本例中,局部变量 name 的值就被赋给了 name 属性。
这个扩展使得对象字面量的初始化更加简洁,也有助于消除命名错误。用局部变量为对象同名属性赋值在 JS 中是极其常见的模式,因此这个扩展自然非常受欢迎。

1.2 方法简写

ES6 同样改进了为对象字面量方法赋值的语法。在 ES5 及更早版本中,你必须指定一个名称并用完整的函数定义来为对象添加方法,如下:

const person01 = {
   
    name: 'kangyun',
    sayName: function(){
   
        console.log(this.name)
    }
}
// 方法简写
const person02 = {
   
    name: 'kangyun',
    sayName(){
   
        console.log(this.name)
    }
}

在 ES5 及更早版本中,对象实例能使用“需计算的属性名”,只要用方括号表示法来代替小数点表示法即可。方括号允许你将变量或字符串字面量指定为属性名,而在字符串中允许存在作为标识符时会导致语法错误的特殊字符。这里有个范例:

const person = {
   }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

永恒的宁静

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值