[ES6] 16. Object Enhancements

Define object


 

var color = "blue";
var speed = 120;

var car = {color, speed};

console.log(car.color);  // blue
console.log(car.speed);  // 120

 in ES5: 

var car = {color: color, speed: speed};

 

works with function


var color = "blue";
var speed = 120;
function go(){
    console.log("start");
}

var car = {color, speed, go};

console.log(car.color); //blue
console.log(car.speed); //120
car.go(); // start

 

define function inside object:


 

var color = "blue";
var speed = 120;

var car = {
    color,
    speed,
    go(){
        console.log("start");
    }
};

console.log(car.color); //blue
console.log(car.speed); //120
car.go(); // start

 

in ES5:

var car = {
    color,
    speed,
    go: function(){
        console.log("start");
    }
};

 

get computed property:


 

var color = "blue";
var speed = 120;

var car = {
    color,
    speed,
    ["go"]: function(){
        console.log("start");
    }
};

console.log(car.color); //blue
console.log(car.speed); //120
car.go(); // start

The same as:

car["go"](); // start

 

string concatenation or evaluation


 

var color = "blue";
var speed = 120;
var drive = "go";
var car = {
    color,
    speed,
    [drive]: function(){
        console.log("start");
    }
};

console.log(car.color); //blue
console.log(car.speed); //120
car.go(); // start
car["go"](); // start

 

posted @ 2015-01-01 22:10  Zhentiw  阅读(195)  评论(0编辑  收藏  举报