javascript - A shorter class initialisation in ECMAScript 6 -


every time create class, need same boring procedure:

class {   constructor(param1, param2, param3, ...) {     this.param1 = param1;     this.param2 = param2;     this.param3 = param3;     ...   } } 

is there way make more elegant , shorter? use babel, es7 experimental features allowed. maybe decorators can help?

you can use object.assign:

class {   constructor(param1, param2, param3) {     object.assign(this, {param1, param2, param3});   } } 

it's es2015 (aka es6) feature assigns own enumerable properties of 1 or more source objects target object.

granted, have write arg names twice, @ least it's lot shorter, , if establish idiom, handles when have arguments want on instance , others don't, e.g.:

class {   constructor(param1, param2, param3) {     object.assign(this, {param1, param3});     // ...do param2, since we're not keeping property...   } } 

example: (live copy on babel's repl):

class {   constructor(param1, param2, param3) {     object.assign(this, {param1, param2, param3});   } } let s = new something('a', 'b', 'c'); console.log(s.param1); console.log(s.param2); console.log(s.param3); 

output:

 b c 

Comments

Popular posts from this blog

sequelize.js - Sequelize group by with association includes id -

android - Robolectric "INTERNET permission is required" -

java - Android raising EPERM (Operation not permitted) when attempting to send UDP packet after network connection -