Возможно, это стало немного проще, но вот то, что я придумал сейчас в 2017 году:
class obj {
constructor(in_shape, in_color){
this.shape = in_shape;
this.color = in_color;
}
getInfo(){
return this.shape + ' and ' + this.color;
}
setShape(in_shape){
this.shape = in_shape;
}
setColor(in_color){
this.color = in_color;
}
}
При использовании вышеуказанного класса у меня есть следующее:
var newobj = new obj('square', 'blue');
//Here, we expect to see 'square and blue'
console.log(newobj.getInfo());
newobj.setColor('white');
newobj.setShape('sphere');
//Since we've set new color and shape, we expect the following: 'sphere and white'
console.log(newobj.getInfo());
Как видите, конструктор принимает два параметра, и мы устанавливаем свойства объекта. Мы также изменим цвет и форму объекта с помощью функций setter
и докажем, что его изменение осталось после вызова getInfo()
после этих изменений.
Немного поздно, но я надеюсь, это поможет. Я протестировал это с помощью mocha
модульного тестирования, и оно работает хорошо.