1.es5对象的写法
function createPerson(name,age) {
//返回一个对象,属性名和参数名相同
return {
name:name,
age:age
}
}
console.log(createPerson('hu',22));
2.es6对象的简写
//用es6的语法可以进行简写
function createPer(name,age) {
//返回一个对象
return{
name,
age
}
}
console.log(createPer('yu',22));
//es6语法特性
var person = {
name:'李四',
sayHello(){
console.log('我的名字是:'+this.name);
}
}
person.sayHello();
在字面量中动态计算属性名
var p = {
name:'胡振宇',
age:20
}
let attName = 'name';
console.log(p[attName]);////这里 attName表示的是一个变量名。
//用es6语法表示
let attName1 = 'name';
var p = {
[attName1]:'胡主任与',
age:20
}
console.log(p[attName1]);
3.当对象字面量的属性只有属性名的时候,javascript引擎会在该作用域内寻找是否有和属性同名的变量
在本例中,本地变量 name 的值被赋给了对象字面量中的 name 属性。
该项扩展使得对象字面量的初始化变得简明的同时也消除了命名错误。
对象属性被同名变量赋值在 JavaScript 中是一种普遍的编程模式, 所以这项扩展的添加非常受欢迎。