JSFiddle - React, Tailwind, and code Playground
Babel + JSX
class BaseModel {
constructor(props) {
this.props = props
Object.keys(props).forEach(propName => {
const property = props[propName]
Object.defineProperty(this, propName, {
set: (value) => this.props[propName] = value,
get: () => this.props[propName]
})
})
}
}
class UserModel extends BaseModel {}
const user = new UserModel({
firstName: 'Evert',
lastName: 'Bob'
})
console.log(user.firstName)